声明个对话框变量dlg,调用dlg.DoModal(),
在某个事件里将这个对话框。dlg.ShowWindow(SW_HIDE);
在其他事件里重新显示这个对话框,dlg.ShowWindow(SW_SHOW);
这是侯,对话框却变成非模态的了,如何避免这种情况发生??
谢谢

解决方案 »

  1.   

    CMainFrame里面的事件,dlg 是CMainFrame的成员变量。
    我的意思是:dlg.ShowWindow(SW_HIDE)以后,再dlg.ShowWindow(SW_SHOW),
    dlg就变成可失去焦点的对话框了,用什么方法让他重新Show的时候,不会失去焦点。
      

  2.   

    呵呵 因为你调用的是ShowWindow啊,只有调用DoModal才是模态窗口啊,连这个都忘了?
      

  3.   

    糊涂了.
    我也是不得已才先HIDE后SHOW的,因为我想保留对话框上面的变量,而又不想通过变量传递的方法,不知道各位大虾明白了没有?
    这样说吧!dlg.ShowWindow(SW_SHOW),如何强制转换成模态的?
      

  4.   

    再建单点说,CWnd 有没有变量或者成员函数是控制窗口生成的状态的(模态/非模态)??
      

  5.   

    那么:CWnd 是如何区分dlg.Create()和dlg.DoModal()的呢?
      

  6.   


    对话框的OnShowWindow消息响应中调用SetActiveWindow try一下?