Что нового

Одинаковый статус у CheckBox

V

VitAl2013

Гость
Использую пример из хелпа про GUICtrlGetState
Код:
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $n, $msg
    
    GUICreate("My GUI (GetControlState)")
    $n = GUICtrlCreateCheckbox("checkbox", 10, 10)
    GUICtrlSetState(-1, 1)  ; checked

    GUISetState()       ; will display an empty dialog box

    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
        
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    MsgBox(0, "state", StringFormat("GUICtrlRead=%d\nGUICtrlGetState=%d", GUICtrlRead($n), GUICtrlGetState($n)))
EndFunc   ;==>Example

У меня state постоянно 80. И не зависит от того check он или uncheck.

Может это баг? Или я понимаю эту функцию не правильно? Я считаю, что должно быть 1 или 0 - true или false - хоть чтото но разное.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
VitAl2013
Насколько я понимаю, то функция GUICtrlGetState() возвращает состояние элемента $n (80). А в GUIConstantsEx.au3 указано:
Код:
;...
Global Const $GUI_SHOW = 16
;...
Global Const $GUI_ENABLE = 64
;...
То есть элемент показан и включен (16+64=80).

Из русской справки по функции GUICtrlGetState():
Замечания
В отличие от GuiRead возвращается только значение, составленное из таких состояний элемента, как - включен (enabled)/отключен (disabled)/скрыт (hidden)/показан (show)/способен принимать объект переноса (dropaccepted).
 
Верх