AutoIT GUICtrlSetState / GUICtrlGetState设置状态与get状态不同

时间:2013-12-04 16:42:40

标签: autoit

我帮助我的代码。

 GUICtrlSetState($input_ID_betonarna,$gui_ENABLE)
 ConsoleWrite(GUICtrlGetState($input_ID_betonarna)&" "& $gui_ENABLE)

输出是: 80 64

预期产量为: 64 64

我知道输出是状态的总和,但我没有任何具有GUIConstantsEx值的表。

1 个答案:

答案 0 :(得分:3)

查看您的AutoIt安装。在“include”子文件夹中,您应找到文件 GUIConstantsEx.au3 ,其中定义了这些常量:

Global Const $GUI_SHOW = 16
Global Const $GUI_HIDE = 32
Global Const $GUI_ENABLE = 64
Global Const $GUI_DISABLE = 128

你得到值80的原因是因为这是一个位掩码,控件实际上有两种状态:它被启用并显示,所以:

$GUI_SHOW = 16
$GUI_ENABLE = 64

总和是80,这就是你输出的结果。

编辑:如果要测试特定状态的控件状态,例如切换按钮的状态,则可以使用BitAND运算符:

If BitAND(GUICtrlGetState($cmdOk), $GUI_DISABLE) = $GUI_DISABLE Then
    GUICtrlSetState($cmdOk, $GUI_ENABLE)
EndIf