我在一个 非模态 对话框里创建另一个 非模态 对话框,怎么后一个非模态对话框老是创建失败??
用Create()时失败。
还有,若我在一个 模态 对话框里创建一个 非模态 对话框,想激活这个 非模态对话框该怎么办??也就是说我想在这个 非模态对话框 里响应鼠标键盘事件等。

解决方案 »

  1.   

    see this,,can help you.
    http://www.codeproject.com/dialog/gettingmodeless.asp
    http://www.codeproject.com/dialog/modelesschild.asp
    http://www.codeproject.com/dialog/modelesssibling.asp
      

  2.   

    Create()时失败
    _______
    贴代码看看, 返回值是什么?
      

  3.   

    http://www.codeguru.com/dialog/dialogMcManus.shtml
      

  4.   

    1。我的第二个 非模态对话框是在第一个 非模态对话框 接收到一个消息后,在消息处理函数里面创建的 ,相关代码如下:
    LRESULT CDlgIdentify::OnPosChange(WPARAM wp,LPARAM lp)
    {
        .....
        if(m_pCandiDlg!=NULL)
        {
        delete m_pCandiDlg;
        m_pCandiDlg=NULL;
        }
        m_pCandiDlg=new CDlgCandi(this,m_strCandi,m_nScore);//m_strCandi,m_nScore  
              //是传到对话框构造函数的参数,分别是CString 和 int
        BOOL bCreated=m_pCandiDlg->Create(IDD_DLG_CANDI);//这句创建不成功,
                                             //pCandiDlg指向0
        m_pCandiDlg->ShowWindow(SW_SHOW);}2。很奇怪,我在第一个 非模态对话框 里加了一个Button,在OnButton1() 却可以正确执行,请问这是为什么??
    void CDlgIdentify::OnButton1() 
    {
        if(m_pCandiDlg!=NULL)
        {
            delete m_pCandiDlg;
            m_pCandiDlg=NULL;
        }
        CRect rc,rcDlg;
        this->GetWindowRect(&rc);
        m_pCandiDlg=new CDlgCandi(this,"01234567890223456789",80);
        BOOL b=m_pCandiDlg->Create(IDD_DLG_CANDI);
        m_pCandiDlg->ShowWindow(SW_SHOW);
        m_pCandiDlg->GetWindowRect(&rcDlg);
        m_pCandiDlg->MoveWindow(rc.left-10,rc.bottom-20,rcDlg.Width(),rcDlg.Height());
             m_pCandiDlg->SetWindowPos(&wndTopMost   ,0,0,0,0,SWP_SHOWWINDOW);
    }3。若我在一个非模态对话框 里成功创建了第二个 非模态对话框 ,想激活 第二个 非模态对话框 ,或者想在两个 非模态对话框 自由切换,该怎么做???
    用m_pCandiDlg->SetWindowPos(&wndTopMost   ,0,0,0,0,SWP_SHOWWINDOW);似乎无效,