精易论坛

标题: 关于精易模块内窗口热键的代码改进_第二版 [打印本页]

作者: UltrSeven    时间: 2022-11-9 22:54
标题: 关于精易模块内窗口热键的代码改进_第二版
上上个反馈贴:https://125.confly.eu.org/forum.php?mod ... 14737756&extra=
上一个帖子:https://125.confly.eu.org/forum.php?mod=viewthread&tid=14749752&extra=总算被项目部正式回复了!咱反馈了三个月了!
项目部提出要例程,那咱也写了个例程对比。目前模块内自带的热键模块由于API用法不对导致无法撤销,咱查了MSDN文档并且修复了这个恶性bug。


然后在这之前我也对模块内自带的热键模块进行了大量优化,可以参考第一个链接
优化包含如下内容

1.修复alt作为首先按下的功能键时热键无法正常响应的问题
2.修复阻止WM_CHAR输入事件对于非字母按键的阻断失效问题
3.交换了几个按键的常量值,以方便和易语言自带的窗口组件交互
4.改进功能键的触发逻辑
5.统一用窗口prop保存全局变量

修改了下方几个常量
.版本 2

.常量 MOD_CONTROL, "1", 公开, 功能键_Ctrl
.常量 MOD_SHIFT, "2", 公开, 功能键_Shift
.常量 MOD_ALT, "4", 公开, 功能键_Alt

有bug或改进提议的话欢迎在此帖反馈(应该没bug了
@项目部004

热键测试.zip

1.2 MB, 下载次数: 27, 下载积分: 精币 -2 枚


作者: ganyilu    时间: 2022-11-9 23:59
本帖最后由 ganyilu 于 2022-11-10 00:29 编辑

你这个,如果同时zc了AB,然后两个都点撤销,只能撤销成功第一个,后面那个撤销无效的。

作者: UltrSeven    时间: 2022-11-10 12:38
ganyilu 发表于 2022-11-9 23:59
你这个,如果同时zc了AB,然后两个都点撤销,只能撤销成功第一个,后面那个撤销无效的。
...

仔细检查了一下,发现bug是来自于易语言自身。当你的窗口添加了按钮控件的时候,窗口就会多出一个没有字符串标识的prop,值为2。这时候用EnumPropsA函数识别这个字符串标识就会崩溃。这个要解决的话得想想办法。。
作者: UltrSeven    时间: 2022-11-10 14:10
本帖最后由 UltrSeven 于 2022-11-10 14:21 编辑

看了@ganyilu 说的问题花了点时间找到了崩溃的真正问题所在,通过lstrlenA API来判断prop是否有文本标题能防止崩溃。修改后重新上传一次例程(貌似找不到重新编辑帖子的按钮,是真的不会用论坛)@项目部004 @ganyilu

作者: ganyilu    时间: 2022-11-10 15:03
本帖最后由 ganyilu 于 2022-11-10 15:06 编辑

编辑在滑稽下面,
主题好像有期限的,只能补充,或者帖子回复。
回复框右上角的 “高级模式” 可以在回复插入附件。











作者: UltrSeven    时间: 2022-11-10 17:54
标题: 关于托盘气泡无法弹出的bug修复
ganyilu 发表于 2022-11-10 15:03
编辑在滑稽下面,
主题好像有期限的,只能补充,或者帖子回复。
回复框右上角的 “高级模式” 可以在回复插 ...

@ganyilu @项目部004

热键测试 2.zip

1.2 MB, 下载次数: 7, 下载积分: 精币 -2 枚


作者: UltrSeven    时间: 2022-11-10 17:55
ganyilu 发表于 2022-11-10 15:03
编辑在滑稽下面,
主题好像有期限的,只能补充,或者帖子回复。
回复框右上角的 “高级模式” 可以在回复插 ...

附件第一次还上传没成功。真的不会用论坛的嘛
作者: prospect    时间: 2022-11-10 19:51
研究的真细致了。
作者: zz907616430    时间: 2022-11-30 22:26
在线时间359 小时注册时间2020-5-17




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