今回は、ウィンドウにGUIメニュー、ラジオボタン、チェックボックス、ボタンを表示し、ボタンに色を付け、マウスカーソルをボタンの上に置くとアイコンが変わるというサンプルを紹介します。
さらに、各コントロール(ボタンやメニュー)に機能を追加していきます。
サンプルコード
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Win11_MoveTaskBar", 368, 265)
GUISetBkColor(0xFFFBF0)
$MenuItem1 = GUICtrlCreateMenu("ファイル")
$MenuItem2 = GUICtrlCreateMenuItem("終了", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenu("ヘルプ")
$MenuItem4 = GUICtrlCreateMenuItem("WEBサイトへ", $MenuItem3)
$MenuItem5 = GUICtrlCreateMenuItem("バージョン情報", $MenuItem3)
$Button1 = GUICtrlCreateButton("Button1", 8, 152, 163, 73)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x0078D7)
GUICtrlSetCursor(-1, 0)
$Radio1 = GUICtrlCreateRadio("上", 24, 88, 113, 17)
$Radio2 = GUICtrlCreateRadio("下", 184, 88, 113, 17)
$Radio3 = GUICtrlCreateRadio("左", 24, 120, 113, 17)
$Radio4 = GUICtrlCreateRadio("右", 184, 120, 113, 17)
$Group1 = GUICtrlCreateGroup("1つ選択してください", 8, 64, 353, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Checkbox1 = GUICtrlCreateCheckbox("チェックボックス", 184, 208, 169, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
; ----------------------------------------チェックボックスの判断
If GUICtrlRead($Radio1) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), '"上" が選択されています。', 0, $Form1)
ElseIf GUICtrlRead($Radio2) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), '"下" が選択されています。', 0, $Form1)
ElseIf GUICtrlRead($Radio3) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), '"左" が選択されています。', 0, $Form1)
ElseIf GUICtrlRead($Radio4) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), '"右" が選択されています。', 0, $Form1)
Else
MsgBox(16, _CheckboxCheck(), "何も選択されていません", 0, $Form1)
EndIf
; ------------------------------------チェックボックスの判断 終了
Case $MenuItem2; 終了
Exit
Case $MenuItem4; WEBサイトへ
ShellExecute("https://autoit.windows-waza.com/")
Case $MenuItem5
MsgBox(0, "バージョン情報", "1.0.0.0", 0, $Form1); バージョン情報
EndSwitch
WEnd
Func _CheckboxCheck()
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then; チェックボックスがチェックされているかを判断
Return "チェックボックスはチェックされています"
Else
Return "チェックボックスはチェックされていません"
EndIf
EndFunc ;==>_CheckboxCheck
各コントロールの機能
メニュー
メニューは、ファイル、ヘルプの2つがあり、さらに「ファイル」の中に「終了」というサブメニューがあります。
「ヘルプ」のサブメニューには、「WEBサイトへ」と「バージョン情報」があります。
「終了」はプログラムを終了し、「WEBサイトへ」は、お使いのブラウザーで当サイトを開きます。
「バージョン情報」は、バージョン情報が書かれているメッセージボックスを表示します。
ラジオボタンとチェックボックス
ラジオボタンとチェックボックスは、チェックするのみです。
ボタン
ボタンは、マウスカーソルを乗せると手の形をしたアイコンに変わるようにしています。
ボタンをクリックすると、ラジオボタンとチェックボックスのチェック状況を確認し、メッセージボックスに表示します。
コードの解説
GUISetBkColor(0xFFFBF0)
ウィンドウのバックグラウンドカラーを指定します。
GUICtrlCreateMenu
メインメニューを作成し、GUICtrlCreateMenuItem でサブメニューを作成します。
GUICtrlSetColor(-1, 0xFFFFFF)
ボタンに表示されるフォントの色を指定します。
GUICtrlSetBkColor(-1, 0x0078D7)
ボタンのバックグラウンドカラーを指定します。
GUICtrlSetCursor(-1, 0)
ボタンにマウスカーソルを乗せると手の形をしたアイコンになるように指定します。
GUICtrlCreateRadio
ラジオボタンを作成します。
GUICtrlCreateGroup
グループを作成してラジオボタンを囲みます。
複数の選択がある場合、グループで囲むと見やすくなります。
GUICtrlCreateCheckbox
チェックボックスを作成します。
ボタンの動作
ボタンをクリックすると、ラジオボタンとチェックボックスのチェックがされているかを判断します。
判断は、条件つき命令文の「IF」を使用しています。
; —————————————-チェックボックスの判断
If GUICtrlRead($Radio1) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), ‘”上” が選択されています。’, 0, $Form1)
ElseIf GUICtrlRead($Radio2) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), ‘”下” が選択されています。’, 0, $Form1)
ElseIf GUICtrlRead($Radio3) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), ‘”左” が選択されています。’, 0, $Form1)
ElseIf GUICtrlRead($Radio4) = $GUI_CHECKED Then
MsgBox(0, _CheckboxCheck(), ‘”右” が選択されています。’, 0, $Form1)
Else
MsgBox(16, _CheckboxCheck(), “何も選択されていません”, 0, $Form1)
EndIf
; ————————————チェックボックスの判断 終了
ShellExecute(“https://autoit.windows-waza.com/”)
ShellExecute 関数で WEBサイト を開きます。
Func _CheckboxCheck()
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then; もしも $Checkbox1 がチェックされていれば
Return “チェックボックスはチェックされています”
Else
Return “チェックボックスはチェックされていません”
EndIf
EndFunc ;==>_CheckboxCheck
ユーザー定義関数を作成し、チェックボックスがチェックされているかを判断します。
Return で返し値を指定します。
次の動画で動作をご確認ください。
https://youtu.be/_1ziujSJbwcユーザー定義関数を作成しておくと、長いコードを何度も書かなくて済みます。
今回は、ウィンドウにGUIメニュー、ラジオボタン、チェックボックス、ボタンを表示し、ボタンに色を付け、マウスカーソルをボタンの上に置くとアイコンが変わるというサンプルを紹介しました。
次回は、違う書き方でまったく同じ動作をするサンプルコードを紹介します。
コメント(降順)