请教一下:关于模态和非模态对话框的问题

roger_ding 2004-08-19 11:38:28
我的程序主界面是个对话框,期间会弹出一个非模态对话框来辅助工作,这时就有问题了,
当弹出MessageBox时,它并不能让两个对话框都不能响应,只能针对其中一个起模态作用,
请问哪位高手知道如何弹出对两个对话框都能起模态作用的MessageBox(对话框)吗?
...全文
234 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
roger_ding 2004-08-22
  • 打赏
  • 举报
回复
算了,好像没有什么太好的api,那我就用SetWindowHookEx搞定吧
zhangshengyu 2004-08-20
  • 打赏
  • 举报
回复
pDlg->EnableWindow(FALSE);
xiaoqiqixiao 2004-08-20
  • 打赏
  • 举报
回复
你不想让用户响应的话,重载PreTranslateMessage,不让键盘鼠标消息继续下传不就好了
roger_ding 2004-08-20
  • 打赏
  • 举报
回复
MB_TASKMODAL是可以,但是那样任务栏上会出现一个任务条,不是很完美
xiaoqiqixiao 2004-08-20
  • 打赏
  • 举报
回复
设置为MB_TASKMODAL或MB_SYSTEMMODAL都可以的,要把hwnd设置为NULL,MB_APPLMODAL才是缺省的
dodont 2004-08-20
  • 打赏
  • 举报
回复
模态对话框显示后他的父窗口的界面本来就要变的吧?
huwei001982 2004-08-20
  • 打赏
  • 举报
回复
直接 EnableWindow(FALSE);

再懒这一条语句还是要写的吧!

MessageBox后面再跟一个
EnableWindow(TRUE);
roger_ding 2004-08-20
  • 打赏
  • 举报
回复
to 回复人: xiaoqiqixiao(七七) ( ) 信誉:97

很多发给子窗口的消息是直接发给WindowProc的,PreTranslate里是拦不到的
roger_ding 2004-08-19
  • 打赏
  • 举报
回复
可那样会导致界面起变化吧,会影响用户的感观
kvls 2004-08-19
  • 打赏
  • 举报
回复
对其中一个没有起作用的对话框直接调用:
pDlg->EnableWindow(FALSE);
roger_ding 2004-08-19
  • 打赏
  • 举报
回复
对,非模态的概念就是如此,但是我需要一个MessageBox,能让两个(模态和非模态)的对话框都不能响应,即MessageBox能针对整个程序的产生模态
DentistryDoctor 2004-08-19
  • 打赏
  • 举报
回复
非模态对话框的行为本来就是这样的,这时你可能手动让它不可用呀,MessageBox结束时再设置为可用呀。
jazy 2004-08-19
  • 打赏
  • 举报
回复
messagebox设置MB_APPLMODAL风格不行吗?
roger_ding 2004-08-19
  • 打赏
  • 举报
回复
可以是可以,好像我比较懒,呵呵,各位还有更好的方法吗?
scmsir 2004-08-19
  • 打赏
  • 举报
回复
同意kvls(冰茶)
这个可以。
holyeagle 2004-08-19
  • 打赏
  • 举报
回复
自己写一个dialog模拟messagebox,不过我记得afxmessagebox就是模式的

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧