找回密码
 加入
搜索
查看: 4057|回复: 7

[GUI管理] 为何禁用复选框,还是对其进行更改操作,并调用相应代码,有源码

  [复制链接]
发表于 2011-10-11 21:29:56 | 显示全部楼层 |阅读模式
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)
Dim $wr
Example()

Func Example()
        Local $checkCN, $msg
        GUICreate("My GUI Checkbox")  ; will create a dialog box that when displayed is centered

        $checkCN = GUICtrlCreateCheckbox("CHECKBOX 1", 10, 10, 120, 20)
$wr=GUICtrlCreateCheckbox("CHECKBOX 1", 20, 20, 120, 20)
        GUISetState()       ; will display an  dialog box with 1 checkbox
;GUICtrlSetState($wr,$GUI_INDETERMINATE)

GUICtrlSetState($checkCN,$GUI_DISABLE)
GUICtrlSetState($wr,$GUI_DISABLE)
GUICtrlSetState($wr,$GUI_INDETERMINATE)
GUICtrlSetState($wr,$GUI_CHECKED)
If GUICtrlRead($wr)=$GUI_CHECKED Then MsgBox(0,"debug","禁用无效!")
        ; Run the GUI until the dialog is closed
        While 1
                $msg = GUIGetMsg()
               
                If $msg = $GUI_EVENT_CLOSE Then ExitLoop
        WEnd
EndFunc   ;==>Example
发表于 2011-10-12 00:05:03 | 显示全部楼层
什么意思。。
 楼主| 发表于 2011-10-14 14:15:10 | 显示全部楼层
If GUICtrlRead($wr)=$GUI_CHECKED Then MsgBox(0,"debug","禁用无效!")
为什么这句仍然能够执行,
前面以前把复选框变成灰色的了,还能执行,选 中后的操作,那不是没禁用吗
 楼主| 发表于 2011-10-16 20:57:01 | 显示全部楼层
等待高手出现为什么变成灰色的禁用命令,会失效,仍然可以执行它的代码
 楼主| 发表于 2011-10-17 19:37:33 | 显示全部楼层
还是没能解决,真不知道是怎么回事,禁用的复选框,还是执行代码
发表于 2011-10-17 19:56:35 | 显示全部楼层
本帖最后由 netegg 于 2011-10-17 19:58 编辑

回复 5# zlmyongheng
判断前一句你不是设置为选中了吗
GUICtrlSetState($wr,$GUI_CHECKED)'
disable是指不响应点击操作,谁说不能通过代码更改了?
 楼主| 发表于 2011-10-20 17:53:03 | 显示全部楼层
本帖最后由 zlmyongheng 于 2011-10-20 18:14 编辑

怎么禁用的复选框,再加上选 中的代码为什么测试它的值仍然为1,这种状态不利于执行后面的代码,因为在后面是根据它的值来判断执行代码的,如果禁用并选中值一样,感觉禁用的效果不是太好,有没有用户定义函数可以达到禁用后有一个特殊的值
发表于 2011-10-20 18:49:05 | 显示全部楼层
回复 7# zlmyongheng
GUICreate('')
$n = GUICtrlCreateCheckbox("checkbox 测试", 10, 10)
GUICtrlSetState(-1, 128 + 1)
GUISetState()
MsgBox(0, '状态', StringFormat("GUICtrlRead=%d\nGUICtrlGetState=%d", GUICtrlRead($n), GUICtrlGetState($n)))
GUICtrlSetState($n, 64 + 4)
MsgBox(0, '状态', StringFormat("GUICtrlRead=%d\nGUICtrlGetState=%d", GUICtrlRead($n), GUICtrlGetState($n)))
While 1
        $msg = GUIGetMsg()
        If $msg = -3 Then ExitLoop
WEnd
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-20 22:32 , Processed in 0.091060 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表