本帖最后由 xyzhaopeng 于 2011-01-24 11:34:00 编辑

解决方案 »

  1.   

    NewDialog dlg;
    dlg.DoModal();
    你是指这个NewDialog没有弹出来吗?
      

  2.   

    MyFrameWnd()
    {
    Create(NULL, "A New Window");//  奇怪,写这个做什么用的
    }
      

  3.   

    NewDialog dlg;
        dlg.DoModal()
    这里下断点调试
      

  4.   

    IDD_DIALOG1是谁的ID,你确定消息响应函数void MyFrameWnd::OnClickDialogNew()运行了?
      

  5.   

    IDD_DIALOG1 就是要弹出的窗口的 ID.
      

  6.   

    .rc贴出来,对话框上有控件吗?InitInstance里不需要这些吗? INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);
    // 将它设置为包括所有要在应用程序中使用的
    // 公共控件类。
    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer();
      

  7.   

    把你的程序发到我邮箱[email protected]里面,我看看
    我自己做的一个类似的是成功的
      

  8.   


    如果执行到了看下DoModal()的返回值,如果是-1则创建对话框失败,再获取一下资源句柄,跟程序初始时资源句柄比较一下,看看是不是由于资源句柄没有切换的原因。
      

  9.   

    一看你的事件放的位置对不`例如在一个对话框上
    OnOK里面
    二看你的NewDialog类建的对不`
    不行设个断点`看到底执行了没
      

  10.   

    对话框有没有加RICHEDIT 或者TREE LISTVIEW、日历等特殊控件?调用INITCOMMCTRLS
      

  11.   

    我跟踪的结果是dlg.DoModal()返回-1,没有创建成功!为何??
    我定制的对话框上还有别的控件~!是这个原因吗?
      

  12.   

        NewDialog(CWnd* pParent = NULL);
        enum { IDD = IDD_DIALOG1 };
    改成:
        enum { IDD = IDD_DIALOG1 };
        NewDialog::NewDialog (CWnd* pParentWnd = NULL) : CDialog (IDD, pParentWnd) {}
    看看。