Функция _GUICtrlButton_SetState

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


_GUICtrlButton_SetState

Устанавливает состояние вдавленной кнопки. Состояние вдавленной кнопки имеет вид, как если бы пользователь нажал её.

#include <GuiButton.au3>
_GUICtrlButton_SetState($hWnd [, $fHighlighted = True])

Параметры

$hWnd Дескриптор или идентификатор элемента
$fHighlighted [необязательный] True, чтобы вдавить кнопку, иначе False

Примечания

Этот влияет только на внешний вид кнопки. Это не влияет на состояние отмеченности радиокнопки или checkbox.

Такой вид кнопка приобретает, когда пользователь помещает курсор над ней, нажимает и удерживает левую кнопку мыши.
Такой вид кнопки убирается, когда пользователь отпускает кнопку мыши.

См. также

_GUICtrlButton_GetState, _GUICtrlButton_SetCheck

См. также

Искать BM_SETSTATE в библиотеке 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