社区
界面
帖子详情
关于MessageBox的问题
robinwjb
2010-01-30 10:17:25
问题一:如何让弹出MessageBox的窗口不要失去焦点(也就是说保持激活状态)?
普通的Messagebox弹出后,原窗口就会失去激活状态,弹出的MessageBox会被激活。
注:必须使用MessageBox,而不是自定义对话框。
问题二:谁知道如何隐藏弹出的MessageBo窗口的方法?
不能有闪烁,让使用者什么都感觉不到。
...全文
411
17
打赏
收藏
关于MessageBox的问题
问题一:如何让弹出MessageBox的窗口不要失去焦点(也就是说保持激活状态)? 普通的Messagebox弹出后,原窗口就会失去激活状态,弹出的MessageBox会被激活。 注:必须使用MessageBox,而不是自定义对话框。 问题二:谁知道如何隐藏弹出的MessageBo窗口的方法? 不能有闪烁,让使用者什么都感觉不到。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sue3140
2010-07-02
打赏
举报
回复
留个名先!~ 这帖子帮了我啊!~
robinwjb
2010-02-01
打赏
举报
回复
http://topic.csdn.net/u/20100201/11/70079053-e3a2-4081-b393-d0fd029d4174.html?95443
robinwjb
2010-02-01
打赏
举报
回复
[Quote=引用 14 楼 cnzdgs 的回复:]
可以在MessageBox获得焦点后再把焦点设到主窗口上,主窗口响应WM_NCACTIVATE消息直接返回0,这样看不到主窗口的变化。如果不是自己的程序,可以通过重设窗口函数的方式来响应消息。
如果上述做法仍不能满足要求,可以Hook ShowWindow函数,在显示MessageBox时,将参数改成SW_SHOWNOACTIVATE。
[/Quote]
谢谢,这个方法可以搞定,给分了!
另外下面的问题也麻烦大家看看啊
robinwjb
2010-01-31
打赏
举报
回复
[Quote=引用 11 楼 cnzdgs 的回复:]
引用 9 楼 robinwjb 的回复:
HCBT_CREATEWINDOW时,除了能销毁窗口,最多只能改变窗口的大小和位置吧。
这个时候想既无法隐藏窗口,也无法设置窗口的样式(比如WS_EX_NOACTIVATE)。
改Z-Order试试。
[/Quote]
修改Z-Order可以让窗口显示到主窗口的背后,但是主窗口还是失去了焦点。
cnzdgs
2010-01-31
打赏
举报
回复
[Quote=引用 9 楼 robinwjb 的回复:]
HCBT_CREATEWINDOW时,除了能销毁窗口,最多只能改变窗口的大小和位置吧。
这个时候想既无法隐藏窗口,也无法设置窗口的样式(比如WS_EX_NOACTIVATE)。
[/Quote]
改Z-Order试试。
wltg2001
2010-01-31
打赏
举报
回复
[Quote=引用 7 楼 robinwjb 的回复:]
::MessageBox(NULL,"OK","Caption",MB_OK);
这样弹出的就是无模式的啊。
[/Quote]
这个还是模式对话框吧,不过父窗口改为桌面了
robinwjb
2010-01-31
打赏
举报
回复
[Quote=引用 8 楼 cnzdgs 的回复:]
给该线程安装WH_CBT类型的钩子,在nCode==HCBT_CREATEWINDOW时,如果Hook函数返回非0值,系统会自动销毁窗口,如果不想销毁窗口,也可以做其它处理,参考MSDN中CBTProc的说明。
[/Quote]
HCBT_CREATEWINDOW时,除了能销毁窗口,最多只能改变窗口的大小和位置吧。
这个时候想既无法隐藏窗口,也无法设置窗口的样式(比如WS_EX_NOACTIVATE)。
cnzdgs
2010-01-31
打赏
举报
回复
给该线程安装WH_CBT类型的钩子,在nCode==HCBT_CREATEWINDOW时,如果Hook函数返回非0值,系统会自动销毁窗口,如果不想销毁窗口,也可以做其它处理,参考MSDN中CBTProc的说明。
robinwjb
2010-01-31
打赏
举报
回复
::MessageBox(NULL,"OK","Caption",MB_OK);
这样弹出的就是无模式的啊。
cnzdgs
2010-01-31
打赏
举报
回复
可以在MessageBox获得焦点后再把焦点设到主窗口上,主窗口响应WM_NCACTIVATE消息直接返回0,这样看不到主窗口的变化。如果不是自己的程序,可以通过重设窗口函数的方式来响应消息。
如果上述做法仍不能满足要求,可以Hook ShowWindow函数,在显示MessageBox时,将参数改成SW_SHOWNOACTIVATE。
zhouzhipen
2010-01-31
打赏
举报
回复
不要使用主窗口作为MessageBox的父窗口.
wltg2001
2010-01-30
打赏
举报
回复
另外,我弹出的Messagebox是无模式的。
=========
MessageBox好像都是模式对话框吧,好像没有参数将它设置成无模式的吧
robinwjb
2010-01-30
打赏
举报
回复
谢谢大家的回复,我再说明一下吧,我通过挂一个WH_CALLWNDPROC类型的hook,然后替换MessageBox的窗口过程,已经可以隐藏MessageBox了,但这样做,原窗口还是会失去激活的状态。另外,我弹出的Messagebox是无模式的。
雪碧爱可乐
2010-01-30
打赏
举报
回复
启动一个线程来调用MessageBox,这样但不知道线程里面调用窗体不知道会出现什么状况,没尝试过!
lllyyy2403
2010-01-30
打赏
举报
回复
[Quote=引用楼主 robinwjb 的回复:]
问题一:如何让弹出MessageBox的窗口不要失去焦点(也就是说保持激活状态)?
普通的Messagebox弹出后,原窗口就会失去激活状态,弹出的MessageBox会被激活。
注:必须使用MessageBox,而不是自定义对话框。
问题二:谁知道如何隐藏弹出的MessageBo窗口的方法?
不能有闪烁,让使用者什么都感觉不到。
[/Quote]
一、由于通常的MessageBox是原程序的模式对话框,是必须要返回的,否则程序只能等待,因此恐怕不能直接走这条路。但可考虑迂回:在其弹出时立即将其隐藏,然后向其发送IDOK按钮指令,从而返回焦点给原程序。二、用钩子勾到该窗口,然后发送隐藏命令ShowWindow(handle,SH_HIADE),然后做第一点。但是可能该对话框可能还是会先闪一下,这仅仅是猜测哈,可能也不会闪直接被隐藏了吧。
jameshooo
2010-01-30
打赏
举报
回复
1、要区分情况。如果模式对话框以原窗口为父窗口,原窗口是不可能激活的。如果模式对话框以桌面作为父窗口,在弹出对话框之前先给自己POST一个自定义消息,然后再弹出对话框,因为原本的消息循环被对话框接管,原窗口只能依靠消息获得继续执行代码的机会,在消息响应里激活自己。
2、除了HOOK这个API,我还不知道更好的办法。
向立天
2010-01-30
打赏
举报
回复
你的这个需求不太容易实现吧
弹出MessageBox原窗口会被禁用
这是由于DoModal的机制造成的
不大可能把模态对话框改为非模态的吧
你到底想做什么
为什么跟MessageBox过不去
有什么特殊应用吧
【ABAQUS单元选择实战指南】从剪切闭锁到沙漏控制:精度与效率的平衡艺术
本文深入探讨了ABAQUS单元选择中的核心挑战与解决方案,包括剪切闭锁、沙漏
问题
和非协调模式的应用。通过对比完全积分、缩减积分和非协调模式单元的优缺点,提供了精度与效率平衡的实战指南,帮助工程师在复杂仿真中做出最优选择。
ABAQUS单元选择避坑指南:从‘剪切闭锁’到‘沙漏
问题
’,手把手教你选对C3D8R和C3D8I
本文深入解析ABAQUS中C3D8R和C3D8I等实体单元的选择策略,重点解决剪切闭锁和沙漏
问题
。通过悬臂梁案例,详细比较完全积分、缩减积分及非协调模式单元的优缺点,提供针对不同分析场景的单元选择建议,帮助工程师优化有限元分析的精度与效率。
别再乱用二阶单元了!ABAQUS仿真提速秘籍:巧用‘非协调模式’单元平衡精度与效率
本文深入探讨了ABAQUS中非协调模式单元(如C3D8I)在工程仿真中的精准应用,通过对比传统单元(C3D20R和C3D8),展示了其在平衡计算精度与效率方面的显著优势。非协调模式单元通过引入额外内部自由度,有效解决了剪切闭锁和沙漏
问题
,适用于以弯曲变形为主的复杂结构分析。实战案例表明,C3D8I单元在保持高精度的同时,计算时间和内存占用大幅降低,是提升仿真效率的理想选择。
别再让网格质量拖后腿!ABAQUS MESH精度提升全攻略:从S4R单元设置到沙漏控制详解
在有限元分析领域,网格质量往往决定着仿真结果的成败。许多工程师花费大量时间建立精细的几何模型,却在网格划分环节草草了事,最终导致计算结果失真或无法收敛。本文将深入探讨ABAQUS中常被忽视的网格优化技术,特别针对S4R壳单元的参数配置与沙漏控制等高级功能,提供一套完整的解决方案。
别再乱选单元了!ABAQUS网格划分实战:从S4R壳单元到六面体/四面体的选择避坑指南
本文深入探讨ABAQUS网格划分实战技巧,从S4R壳单元到六面体/四面体的选择策略,帮助工程师避免常见陷阱。通过对比不同单元类型的特性、网格划分技术的适用场景以及典型工程案例的单元搭配方案,提供了一套完整的避坑指南,显著提升CAE分析的效率和精度。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章