我在VC中创建了一个主对话框(CDiaLog),以它为父对话框,又创建了若干个WS_CHILD属性的子对话框,现在我想使其中的一个子对话框A总是在最前显示 (我想要的功能是把对话框A做成浮动的工具条),下面给出我用来测试的简单代码。
    先在VC建立一个对话框工程test
    在主对话框类中//CtestDlg.cpp
    CtestDlg::OnInitDialog()
   { 
     ..
     // TODO:  在此添加额外的初始化
     CSubADlg *pMyDlgA = new CSubADlg();//子对话框A,我在类CSubADlg中添加了一个WM_LBUTTONDOWN鼠标消息函数, 
                                        // 作测试用
     pMyDlgA->Create(IDD_SUBADLG,this);//IDD_SUBADLG是我在资源视图建立的对话框资源的ID,要把style属性改成
                                       //child
     pMyDlgA->MoveWindow(0,0,100,200);
     pMyDlgA->ShowWindow(true);     CSubBDlg *pMyDlgB = new CSubBDlg();//子对话框B,我在类CSubBDlg中也添加了一个WM_LBUTTONDOWN鼠标消息函数, 
                                        // 作测试用     //对话框pMyDlgB在客户区全屏显示
     CRect rc;
     this->GetClientRect(rc);
     pMyDlgB->Create(IDD_SUBBDLG,this);
     pMyDlgB->MoveWindow(rc);
     pMyDlgB->ShowWindow(true);     //关键代码,问题就是出在这里
     ::SetWindowPos(pMyDlgA->m_hWnd,HWND_TOPMOST,0,0,0,0, SWP_NOSIZE | SWP_NOMOVE);
   }
//
调试运行后,发现对话框界面只是显示CSubBDlg的对话框(全屏显示),而CSubADlg不能显示,但是CSubADlg能够捕捉鼠标焦点(即点击时能响应自己的鼠标函数)我要怎么做才能让CSubADlg既能总是显示,又能捕捉鼠标焦点

解决方案 »

  1.   

    那么你就不能把子对话框A设置为child style
      

  2.   

    那么你就不能把子对话框A设置为child style答:我有设置啊,你自己建一个工程调试一下就知道是有什么问题的了
      

  3.   

    http://www.codeproject.com/KB/toolbars/toolbardialog.aspx
      

  4.   

    回复:http://www.codeproject.com/KB/toolbars/toolbardialog.aspx答:谢谢,这个网址是关于工具条的创建,很不错。但不是我想要的,我补充一下,我现在只需要实现一个简单的功能:递属于同一个父对话框的两个子对话框A和B,要A无论如何都是显示在B之前,A要可见,可用(即A可用捕获鼠标焦点),望高人赐教!