_GUICtrlButton_GetState
Определяет состояние кнопки или checkbox
#include <GuiButton.au3>
_GUICtrlButton_GetState($hWnd)
Параметры
$hWnd | Дескриптор или идентификатор элемента |
Возвращаемое значение
Успех: Возвращает текущее состояние кнопки. Это может быть комбинацией следующих значений, которые можно извлечь с помощью BitAND:См. также
_GUICtrlButton_SetState, _GUICtrlButton_GetCheck, _GUICtrlButton_SetCheckСм. также
Искать BM_GETSTATE в библиотеке MSDNПример
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <WindowsConstants.au3>
Global $iMemo
_Main()
Func _Main()
Local $rdo, $rdo2, $chk, $chk2, $chk3, $btn, $btn2
GUICreate("Определяет состояние кнопки", 400, 400)
$iMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn = GUICtrlCreateButton("Кнопка1", 10, 10, 90, 25)
_GUICtrlButton_SetState($btn)
$btn2 = GUICtrlCreateButton("Кнопка2", 10, 60, 90, 25)
$rdo = GUICtrlCreateRadio("Радио1", 10, 110, 90, 25)
_GUICtrlButton_SetFocus($rdo)
$rdo2 = GUICtrlCreateRadio("Радио2", 10, 170, 90, 25)
_GUICtrlButton_SetCheck($rdo2)
$chk = GUICtrlCreateCheckbox("Check1", 10, 230, 90, 25, BitOR($BS_AUTO3STATE, $BS_NOTIFY))
_GUICtrlButton_SetCheck($chk, $BST_INDETERMINATE)
$chk2 = GUICtrlCreateCheckbox("Check2", 10, 290, 90, 25, BitOR($BS_AUTO3STATE, $BS_NOTIFY))
$chk3 = GUICtrlCreateCheckbox("Check3", 10, 350, 90, 25, BitOR($BS_AUTO3STATE, $BS_NOTIFY))
_GUICtrlButton_SetCheck($chk3, $BST_CHECKED)
GUISetState()
MemoWrite("Состояние Кнопка1:" & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($btn), True))
MemoWrite("Состояние Кнопка2:" & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($btn2), True))
MemoWrite("Состояние Радио1: " & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($rdo)))
MemoWrite("Состояние Радио2: " & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($rdo2)))
MemoWrite("Состояние Check1: " & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($chk)))
MemoWrite("Состояние Check2: " & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($chk2)))
MemoWrite("Состояние Check3: " & @CRLF & "--------------------------------" & _
_ExplainState(_GUICtrlButton_GetState($chk3)))
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Exit
EndFunc ;==>_Main
; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite
Func _ExplainState($iState, $fPushButton = False)
Local $sText = ""
If Not $fPushButton And Not $iState Then Return _
@CRLF & "Очищено. Тоже, что значение 0." & @CRLF
If BitAND($iState, $BST_CHECKED) = $BST_CHECKED Then _
$sText &= @CRLF & "Отмечено." & @CRLF
If BitAND($iState, $BST_FOCUS) = $BST_FOCUS Then _
$sText &= @CRLF & "Фокус. Ненулевое значение указывает, что кнопка имеет фокус ввода." & @CRLF
If BitAND($iState, $BST_INDETERMINATE) = $BST_INDETERMINATE Then _
$sText &= @CRLF & "Третье состояние, серое, не определено." & @CRLF
If $fPushButton Then
If BitAND($iState, $BST_PUSHED) = $BST_PUSHED Then
$sText &= @CRLF & "Вдавлена." & @CRLF
Else
$sText &= @CRLF & "Не вдавлена." & @CRLF
EndIf
EndIf
Return $sText
EndFunc ;==>_ExplainState