找回密码
 加入
搜索
查看: 1659|回复: 2

[AU3基础] 怎么检查一个窗口是否“LOCK”

[复制链接]
发表于 2011-8-22 10:48:18 | 显示全部楼层 |阅读模式
本帖最后由 godhawk 于 2011-8-22 10:50 编辑

比如用函数GUICtrlSetState ,设置成 @SW_LOCK

但是有什么办法判断它是否lock呢,

有人可能会说用WinGetState,但是我实验了一下,做了一个复选框来确认

$state = WinGetState($myPro)

If BitAnd($state, 8) Then
GUICtrlSetState($lock[$i] , $GUI_UNCHECKED)
Else
GUICtrlSetState($lock[$i] , $GUI_CHECKED)
EndIf

但是无论我是否让$pro被@SW_LOCK,这个复选框都是被选中的,没办法变化

窗口属性的计算值应该是这样的吧?
;~  1 = 窗口存在
;~  2 = 窗口可见
;~  4 = 窗口可用
;~  8 = 窗口激活
;~  16 = 窗口最小化
;~  32 = 窗口最大化

而且用BitAnd($PRO, 4) 来判断的话,会被@SW_Disable 影响,那么4肯定是指enable和disable

那么lock到底怎么来识别呢?
发表于 2011-8-22 10:53:49 | 显示全部楼层
建议另行设立个变量来“存储”这个“lock"状态!
当然这只是简单情况下用,如果需要记录很多窗口或控件就不适用了!
 楼主| 发表于 2011-8-22 13:50:48 | 显示全部楼层
呃,是我被说明文档误导了……

@SW_LOCK 锁定窗口, 以避免刷新.

但是用If BitAnd(WinGetState($myPro), 8) 取得的判断,和这个lock没关系,这个是判断是否在前台还是后台

结果lock还是不知道怎么识别……
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 01:53 , Processed in 0.070159 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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