サンプルコード

Autoit|ロゴの表示と画像を使ったボタンのサンプルコード

今回は、ロゴの表示と自分で作成したボタン画像をボタン代わりに使用するサンプルコードを紹介します。

ボタン画像は次のようなもので、拡張子は「jpg」を使用しています。

ボタン画像A
ボタン画像A
autoitロゴ
ロゴ画像
画像ボタンサンプル1
完成したプログラム
画像ボタンサンプル2
各ボタンを押すと、メッセージボックスを表示します。

サンプルコード

#include <GUIConstantsEx.au3>; $GUI_EVENT_CLOSE #include <ColorConstants.au3>; $COLOR_WHITE $title = "Windows WAZA!"; タイトル $Form = GUICreate($title, 340, 450, -1, -1); ウィンドウの作成 GUICtrlCreatePic(@ScriptDir & "\autoit.jpg", 10, 10, 320, 60, 0); ピクチャーコントロールの作成(ロゴ) $ButtonA = GUICtrlCreatePic(@ScriptDir & "\A.jpg", 10, 80, 95, 86, 0x0100); ピクチャーコントロールの作成(ボタンA) ;0x0100 で画像をクリックした際にメッセージを取得します。 $ButtonU = GUICtrlCreatePic(@ScriptDir & "\U.jpg", 120, 80, 95, 86, 0x0100); ピクチャーコントロールの作成(ボタンU) $ButtonT = GUICtrlCreatePic(@ScriptDir & "\T.jpg", 230, 80, 95, 86, 0x0100); ピクチャーコントロールの作成(ボタンT) $ButtonO = GUICtrlCreatePic(@ScriptDir & "\O.jpg", 10, 176, 95, 86, 0x0100); ピクチャーコントロールの作成(ボタンO) GUISetBkColor($COLOR_WHITE); ウィンドウの背景色を設定 GUISetState(@SW_SHOW); ウィンドウを表示 While 1 $msg = GUIGetMsg(); ウィンドウからメッセージを取得 Select Case $msg = $GUI_EVENT_CLOSE; xボタンが押されたら Exit Case $msg = $ButtonA; $ButtonA が押されたら _Button($ButtonA); ユーザー定義関数_Button() を実行します。 MsgBox(0, 0, "ボタン A を押しました"); メッセージボックスを表示します。 Case $msg = $ButtonU _Button($ButtonU) MsgBox(0, 0, "ボタン U を押しました") Case $msg = $ButtonT _Button($ButtonT) MsgBox(0, 0, "ボタン T を押しました") Case $msg = $ButtonO _Button($ButtonO) MsgBox(0, 0, "ボタン O を押しました") EndSelect WEnd Func _Button($btn); ボタンの位置を取得し、一度位置を移動してからすぐに元の位置に戻します。 Local $iPos = ControlGetPos($title, "", $btn); ボタンの位置を取得 GUICtrlSetPos($btn, $iPos[0] + 5, $iPos[1] + 5); ボタンの位置を移動 Sleep(100); スリープ GUICtrlSetPos($btn, $iPos[0], $iPos[1]); ボタンの位置を元に戻します。 EndFunc ;==>_Button

サンプルコードの解説

ウィンドウを作成し、GUICtrlCreatePic() 関数(ピクチャーコントロールの作成)でウィンドウにロゴ画像とボタン画像を追加しています。

GUICtrlCreatePic (ファイル名, 左, 上, 幅, 高さ, スタイル = -1 , 拡張スタイル = -1)

GUICtrlCreatePic 関数のスタイルに「0x0100」を設定しています。

「0x0100」を設定することで、ボタンがクリックされた時に、メッセージを取得することができるようになります。

0x0100($SS_NOTIFY) ,こちらはデフォルトのスタイルなので、次のように記述しなくても同じ動作をします。

$ButtonA = GUICtrlCreatePic(@ScriptDir & "\A.jpg", 10, 80, 95, 86)

ユーザー定義関数

ボタンの位置を取得し、一度位置を移動してからすぐに元の位置に戻すユーザー定義関数を作成しています。

Func _Button($btn)
Local $iPos = ControlGetPos($title, “”, $btn) ボタンの位置を取得して変数 $iPos に値を代入しています。

ウィンドウ内のコントロールの位置とサイズを取得します。

$aArray = ControlGetPos ( "タイトル", "説明", コントロルID)

返し値
    $aArray[0] = X 方向
    $aArray[1] = Y 方向
    $aArray[2] = 幅
    $aArray[3] = 高さ

$iPos[0] が x方向、$iPos[1] が y 方向になります。


GUICtrlSetPos($btn, $iPos[0] + 5, $iPos[1] + 5)

ボタンの位置を5ずつ移動します。


Sleep(100)

ボタンの移動を視覚化するためにスリープを入れます。

スリープを入れないと、ボタンの移動が見えません。


GUICtrlSetPos($btn, $iPos[0], $iPos[1])

移動したボタンの位置を元に戻します。


EndFunc ;==>_Button

この状態でボタンをクリックすると、クリックした瞬間ボタンが右斜め下に移動し、すぐに元の位置に戻ります。

ウィンドウの背景色

GUISetBkColor($COLOR_WHITE)

記事の上にある「ボタン画像A」を見るとわかるように、ボタン画像は四角であり、四隅が白くなっています。

このボタンを丸く見せるために、ウィンドウの背景色を四隅の色と同じ白に設定しています。

サンプルを用意しましたので、ダウンロードして確認してみてください。

画像を使ったボタンのサンプル.zip

zipファイルの内容

  1. 画像を使ったボタンのサンプル.au3
  2. autoit.jpg
  3. A.jpg
  4. u.jpg
  5. T.jpg
  6. O.jpg

コメント(降順)

タイトルとURLをコピーしました