精易论坛

标题: 请教一个功能的实现问题 [打印本页]

作者: sosoby    时间: 2022-7-23 14:00
标题: 请教一个功能的实现问题
各位老师下午好,我在网上找到一个防止**按钮克星的代码,它的实现方法貌似是定义一个全局变量,在修改组件属性时,先检查这个全局变量,而后再决定是否修改组件属性。
它的主要代码如下:

  
窗口程序集名保 留  保 留备 注
窗口程序集1   
变量名类 型数组备 注
集变_手动解禁逻辑型  
旧窗口过程整数型  

子程序名返回值类型公开备 注
_按钮1_被单击  
信息框 (“解禁成功!”, 0, )
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
ban (按钮1.取窗口句柄 ())
ban (单选框1.取窗口句柄 ())
ban (选择框1.取窗口句柄 ())
子程序名返回值类型公开备 注
ban  
参数名类 型参考可空数组备 注
hwnd整数型
旧窗口过程 = GetWindowLongA (hwnd, -4)
SetWindowLongA (hwnd, -4, 到数值 (&子类化按钮))
子程序名返回值类型公开备 注
子类化按钮整数型 
参数名类 型参考可空数组备 注
hwnd整数型
消息值整数型
参数1整数型
参数2整数型
变量名类 型静态数组备 注
z整数型 
如果真 (消息值 = 10 参数1 = 1)
如果真 (集变_手动解禁 = )
激活窗口 (hwnd, )
' 信息框 (“非法解禁”, 0, )
返回 (-1)

z = CallWindowProcA (旧窗口过程, hwnd, 消息值, 参数1, 参数2)
返回 (z)
子程序名返回值类型公开备 注
_按钮2_被单击  
集变_手动解禁 = 真
按钮1.禁止 = 假


我发现这样的话会出现什么问题呢,就是一个窗口上有超过1个组件时,在**按钮克星下,只要有一个组件解禁了,那么其他组件也就直接解禁了。
我应该如何避免这个问题呢?


防止按钮克星_修改.rar

181.77 KB, 下载次数: 3, 下载积分: 精币 -2 枚






欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4