标题:请教可以检测到Messagebox()在运行吗?
只看楼主
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
我印象中 +4096 时,vfp 创建的对话框是基本样式不一样,增加了一个 DS 开头的对话框样式,具体值忘了,跟设置前景窗口有关
2023-05-15 20:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
用 GetWindow(hWnd, GW_OWNER) 获取所有者窗口,没有Timeout的得到的是表单的hWnd,有Timeout的返回0
2023-05-15 21:37
foxfans
Rank: 4
等 级:贵宾
威 望:11
帖 子:90
专家分:278
注 册:2021-10-23
得分:0 
MessageBox不简单,带时间的那个感觉也做了很多处理,暂时不研究了

2023-05-15 21:42
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
三种情况下的窗口样式:
不带 timeout 的 MessageBox

带 timeout + 4096 的 MessageBox

用 MessageBoxTimeout api 的


很明显,vfp 的 +4096 不是简单调用 MessageBoxTimeout api

[此贴子已经被作者于2023-5-15 21:51编辑过]

2023-05-15 21:48
foxfans
Rank: 4
等 级:贵宾
威 望:11
帖 子:90
专家分:278
注 册:2021-10-23
得分:0 
要深入了解原理,看来还是得OD跟进去,或者把相关的样式设置参数修改变化情况勾出来保存后进一步分析观察.
2023-05-15 21:57
tigerpub
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2023-4-20
得分:0 
回复 43楼 foxfans
老鸟
2023-05-16 13:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
看来使用 MESSAGEBOX 的 Timeout 还是要多考虑一下,不只是出现在表单上面还是在下面的问题。
消息对话框没有“所有者”,对其他窗口没有什么限制,有可能出现意想不到的结果。
这种情况,消息对话框出现后,用户对窗口的操作虽然没有即时响应,但还是有效的。
如果消息对话框的内容非常重要,用户操作又没得到即时反映,有可能会影响下一歩操作的正确性。
所以重要的提示最好不要用带Timeout的MESSAGEBOX。
2023-05-16 14:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
VFP带Timeout的MESSAGEBOX可能是WAIT TIMEOUT 的另一个版本
2023-05-16 14:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512194-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022589 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved