Function Reference

_GUICtrlButton_SetDontClick

ボタンに$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