ボタンに$BST_DONTCLICKフラグを設定します。
#Include <GuiButton.au3>
_GUICtrlButton_SetDontClick($hWnd[, $fState = True])
パラメータ
$hWnd | コントロールのハンドル |
$fState | [オプション]状態。$BST_DONTCLICKを設定するにはTrue、それ以外はFalseを使用します。 |
返し値
なし。
注意
最低限度のオペレーティングシステム: Windows Vista
関連
こちらも参照
MSDNライブラリでBM_SETDONTCLICKを検索して下さい。
例
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <WindowsConstants.au3>
#include <GuiMenu.au3>
Opt("MustDeclareVars", 1)
Global $btn, $iMemo, $btn2
; これらのボタンのIDはGuiCtrlReadでは読み取れないことに注意
_Main()
Func _Main()
Local $hGUI, $aInfo
$hGUI = GUICreate("Buttons", 400, 400)
$iMemo = GUICtrlCreateEdit("", 10, 100, 390, 284, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn = _GUICtrlButton_Create($hGUI, "Button1", 10, 10, 160, 40)
_GUICtrlButton_SetDontClick($btn)
$btn2 = _GUICtrlButton_Create($hGUI, "Button2", 10, 55, 160, 40)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Exit
EndFunc ;==>_Main
; メモコントロールに1行書き込み
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite
; ボタンクリックに反応
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0x0000FFFF)
Local $hCtrl = $lParam
Local $sText = ""
Switch $hCtrl
Case $btn, $btn2
Switch $nNotifyCode
Case $BN_CLICKED
If BitAND(_GUICtrlButton_GetState($hCtrl), $BST_DONTCLICK) = $BST_DONTCLICK Then
$sText = "$BST_DONTCLICK" & @CRLF
Else
$sText = "$BN_CLICKED" & @CRLF
EndIf
MemoWrite($sText & _
"-----------------------------" & @CRLF & _
"WM_COMMAND - Infos:" & @CRLF & _
"-----------------------------" & @CRLF & _
"Code" & @TAB & ":" & $nNotifyCode & @CRLF & _
"CtrlID" & @TAB & ":" & $nID & @CRLF & _
"CtrlHWnd:" & $hCtrl & @CRLF & _
_GUICtrlButton_GetText($hCtrl) & @CRLF)
Case $BN_PAINT
$sText = "$BN_PAINT" & @CRLF
Case $BN_PUSHED, $BN_HILITE
$sText = "$BN_PUSHED, $BN_HILITE" & @CRLF
Case $BN_UNPUSHED, $BN_UNHILITE
$sText = "$BN_UNPUSHED" & @CRLF
Case $BN_DISABLE
$sText = "$BN_DISABLE" & @CRLF
Case $BN_DBLCLK, $BN_DOUBLECLICKED
$sText = "$BN_DBLCLK, $BN_DOUBLECLICKED" & @CRLF
Case $BN_SETFOCUS
$sText = "$BN_SETFOCUS" & @CRLF
Case $BN_KILLFOCUS
$sText = "$BN_KILLFOCUS" & @CRLF
EndSwitch
Return 0 ; ボタンクリック時のみ動作
EndSwitch
; デフォルトのAutoit3内部メッセージコマンドを続行
; ラインアウトで完了することもできる
; !!!ただし'Return'(値なし)だけは新しいデフォルトのAutoit3メッセージ
; を続行できない!!!
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND