none
非模态对话框中调用模态对话框的问题 RRS feed

  • 问题

  • 我想点击非模态对话框上的一个按钮,来生成一个模态对话框,代码如下:

    void CPage2::OnBnClickedButtonstore()
    {
     // TODO: 在此添加控件通知处理程序代码
     //MessageBox(L"存入记录");
      AFX_MANAGE_STATE(AfxGetStaticModuleState());


      CPage20  WireStore=new CPage20;
      if(WireStore.Create(IDD_DIALOG21,this))
      {
        WireStore.DoModal();
      }   
    }
    结果是:运行时 模态对话框不显示,而且运行中止,调试到 WireStore.DoModal()出现错误

    这是什么问题?

    2011年10月29日 7:21

答案

全部回复

  • 模态对话框直接

    CPage20 WireStore;

    WireStore.DoModal();

    这样写就可以了


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年10月29日 13:28
    版主
  • 如果要使用创建模态对话框的对话框中的成员,在模态对话框中,怎么实现,用GetParent(),得到的是主窗口,并不是创建它的对话框

    2011年10月30日 5:21
  • 在模态对话框中声明一个指针

    DoModal之前先行赋值


    新浪微博http://weibo.com/xianglitian,欢迎围观
    2011年10月31日 1:42
  • 如果要使用创建模态对话框的对话框中的成员,在模态对话框中,怎么实现,用GetParent(),得到的是主窗口,并不是创建它的对话框

    DoModal()有个参数,如果没有填的话就是GetActiveWindow(貌似),GetParent就是返回这个窗口
    2011年10月31日 2:41
  • m_pMyDialog = new CMyDialog();
    m_pMyDialog-> DoModal();
    Keep it simple
    • 已标记为答案 Rob Pan 2011年11月3日 8:35
    2011年10月31日 6:30
  • CMyDialog的构造函数中把窗口句柄传进去。
    麻烦把正确答案设为解答。
    • 已标记为答案 Rob Pan 2011年11月3日 8:35
    2011年11月1日 2:20
    版主