Функция WM_COMMAND

 ↑  ←  Описание функции


WM_COMMAND

Сообщение выполняется при клике на элементах окна.

Параметры

Указанные параметры передаются системой.
$wParam Двойное слово содержит:
    младшее слово = идентификатор элемента
    старшее слово = код действия с кнопкой (NotifyCode)
$lParam Дескриптор элемента

Примечания

Смотрите функцию GUIRegisterMsg.

Пример

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
Global $k = 0
$Gui = GUICreate("WM_COMMAND", 390, 220)
$Input = GUICtrlCreateInput("Text", 10, 10, 75, 21)
$Checkbox = GUICtrlCreateCheckbox("Checkbox", 10, 40, 90, 17)
$Radio = GUICtrlCreateRadio("Radio", 10, 60, 90, 17)
$Button = GUICtrlCreateButton("Button", 10, 85, 75, 25, 0)
$Label = GUICtrlCreateEdit('Функция WM_COMMAND выполняется при клике на элементах окна.', 115, 5, 270, 210, $ES_MULTILINE)
GUICtrlSetBkColor(-1, 0xfffbd7)
$List = GUICtrlCreateList('', 10, 115, 75, 55)
GUICtrlSetData($List, 'Text1|Text2|Text3', 'Text3')
GUISetState()

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

Do
Until GUIGetMsg() = -3

Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nID = BitAND($wParam, 0x0000FFFF) ; _WinAPI_LoWord
    Local $nNotifyCode = BitShift($wParam, 16) ; _WinAPI_HiWord

    GUICtrlSetData($Label, _
        ' Параметры:' & @CRLF & _
        ' $hWnd (дескриптор окна) ' & @TAB & ':' & $hWnd & @CRLF & _
        ' $Msg (код сообщения)' & @TAB & ':' & Hex(Int($Msg), 4) & @CRLF & _
        ' $wParam' & @TAB & ':' & $wParam & @CRLF & _
        ' $lParam' & @TAB & ':' & $lParam & @CRLF & @CRLF & _
        ' Информация:' & @CRLF & _
        ' -----------------------------' & @CRLF & _
        ' Код уведомления (NotifyCode)' & @TAB & ':' & $nNotifyCode & @CRLF & _
        ' Идентификатор элемента (CtrlID)' & @TAB & ':' & $nID & @CRLF & _
        ' Дескриптор элемента (CtrlHWnd)' & @TAB & ':' & $lParam & @CRLF & _
        ' -----------------------------' & @CRLF & _
        ' ' & GUICtrlRead($nID) & ' - ' & GUICtrlRead($nID, 1))
    $k += 1
    WinSetTitle($Gui, '', 'Кликнул ' & $k & ' раз')
    Return $GUI_RUNDEFMSG
EndFunc