我的程序主界面是个对话框,期间会弹出一个非模态对话框来辅助工作,这时就有问题了,
当弹出MessageBox时,它并不能让两个对话框都不能响应,只能针对其中一个起模态作用,
请问哪位高手知道如何弹出对两个对话框都能起模态作用的MessageBox(对话框)吗?

解决方案 »

  1.   

    非模态对话框的行为本来就是这样的,这时你可能手动让它不可用呀,MessageBox结束时再设置为可用呀。
      

  2.   

    对,非模态的概念就是如此,但是我需要一个MessageBox,能让两个(模态和非模态)的对话框都不能响应,即MessageBox能针对整个程序的产生模态
      

  3.   

    对其中一个没有起作用的对话框直接调用:
    pDlg->EnableWindow(FALSE);
      

  4.   

    自己写一个dialog模拟messagebox,不过我记得afxmessagebox就是模式的
      

  5.   

    同意kvls(冰茶)
    这个可以。
      

  6.   

    messagebox设置MB_APPLMODAL风格不行吗?
      

  7.   

    设置为MB_TASKMODAL或MB_SYSTEMMODAL都可以的,要把hwnd设置为NULL,MB_APPLMODAL才是缺省的
      

  8.   

    MB_TASKMODAL是可以,但是那样任务栏上会出现一个任务条,不是很完美
      

  9.   

    你不想让用户响应的话,重载PreTranslateMessage,不让键盘鼠标消息继续下传不就好了
      

  10.   

    to 回复人: xiaoqiqixiao(七七) ( ) 信誉:97很多发给子窗口的消息是直接发给WindowProc的,PreTranslate里是拦不到的
      

  11.   

    直接 EnableWindow(FALSE);再懒这一条语句还是要写的吧!MessageBox后面再跟一个
    EnableWindow(TRUE);
      

  12.   

    算了,好像没有什么太好的api,那我就用SetWindowHookEx搞定吧