在一个MDI界面中,又生成了一个非模态对话框,现在的问题是:
此非模态对话框始终位于ChildFrame之上,即使ChildFrame窗口获得焦点,非模态对话框也只是变灰,但仍位于ChildFrame之上,无法被ChildFrame窗口覆盖。
请教各位大侠应如何解决这一问题?小弟在此谢过了!!!

解决方案 »

  1.   

    DoModal出来的是这样的
    非模态对话框是createwindow出来的吧?
    设置窗口风格阿
      

  2.   

    DoModal()是不会失去焦点的啊,我是用create的,但是无法被覆盖掉,我现在正是要覆盖它。
    如果设置窗口风格,该设置哪些啊??
      

  3.   

    m_dlg.Create(IDD_DIALOG1,CWnd::GetDesktopWindow());
    把父窗口设为桌面
      

  4.   

    我在SDK下,用 kingcom_xu(杀不了人的刀,郁闷!) 的方法是成功的!
    你多试试!
      

  5.   

    好心的xb_luotuo(luotuo)兄,能不能说具体些,或者发一个示例的程序给我 [email protected]  [email protected] ,谢谢了
      

  6.   

    哦,我试过了,不过这样的话,当ChildFrame得到焦点时Dialog就消失了,我要它被childframe覆盖啊,各位大哥,怎么办啊?我急啊。。
      

  7.   

    ChildFrame得到焦点,那么Dialog必然失去焦点。最开始没有处理的时候,失去焦点的对话框会在主窗口的上面,现在,他消失,就是跑到主窗口的后面了,实现了覆盖,这有什么不对的??真不理解,你是想要怎么样,你最好说清楚。
      

  8.   

    我要的是失去焦点的对话框在Childframe后面,但在mainframe前面。就像不同的childframe来回之间切换一样。谢谢诸位了!
      

  9.   

    那你为什么不再用一个ChildFrame来代替这个DLG不就可以了
      

  10.   

    把对话框的父窗口设为MainFrame的m_hClientArea试试,我没有试过,估计成功率为10%。有没有拼写错误我现在也没法验证,你试试把
      

  11.   

    您要截获消息,在消息函数中用SetWindowsPos()
      

  12.   

    非模式dialog父窗体为空就好了,为mainframe当然不会在mainframe后面