如果是模态对话框
改成:
void CWinView::OnFileControl() 
  {
  CControlDlg dlg;
  dlg.DoModal();
}
如果是非模态对话框
改成:
void CWinView::OnFileControl() 
  {
  CControlDlg dlg;
  dlg.Create();  
}

解决方案 »

  1.   

    你是不使用了 rich edit,如果是的话要调用 AfxInitRichEdit( );
      

  2.   

    这个问题我知道,其实很简单。是你的CControlDlg dlg;定义不对。将其改成类的成员变量就行了。
      

  3.   

    你是不使用了 rich edit,如果是的话要调用 AfxInitRichEdit( );
    如果是先把rich edit拿走
    看看有没有
    再用AfxInitRichEdit()初始化试试。。
      

  4.   

    在对话框资源属性里先把对话框styles设为visible
      

  5.   

    谢谢大家帮助!!基本搞定!
    我在上面代码所在文件开始处,定义对话框。
    CControlDlg dlg;
    结果就可以了。(一开始还存在其他问题,不详说)
    我发现,现在按原来的方法做,对话框出现0.5秒后,自动消失。可能是因为局部变量的缘故吧?如果要使对话框始终有效,(如果我在别的文件里进行消息相应),我后来的做法行不行?该怎么做?
      
      

  6.   

    void CWinView::OnFileControl() 
      {
      CControlDlg *pdlg = new CControlDlg;
      pdlg->Create(IDD_CONTROL);
      pdlg->ShowWindow(SW_SHOWNORMAL); 
    }别忘了将pdlg 保存下来,什么时候不用了就释放。
      

  7.   

    是啊,你的变量结束的时候就被系统释放了,所以你看见的对话框一闪就消失了.你把
    CControlDlg dlg;
    放到类中变量声明中可OK了,如果其它类不调用放在Private中
      

  8.   

    to lumine(源点) :
    是不是在骗我?
    e:\user\win\controldlg.h(29) : error C2460:'dlg' : uses 'CControlDlg', which is being defined
    而且,我这样定义对象(在mydialog.h中)
    class mydialog: dialog
    {……
    }dlg;
    也不行,说是在什么obj里定义了,怎么办? 
      

  9.   

    改为
    void CWinView::OnFileControl() 
      {
      CControlDlg *dlg=new CControlDlg();
      dlg->Create(IDD_CONTROL);
      dlg->ShowWindow(SW_SHOWNORMAL); 
    }
      

  10.   

    又在骗我!!
    我想定义一个dlg,可以在几个cpp中响应,这样行吗?
      

  11.   

    我想定义一个dlg,可以在几个cpp中响应,这样行吗?你把它设为全局变量不就得了?
      

  12.   

    怎么设?拜托说一下!一直用API,没接触过全局变量之类。哎!
      

  13.   

    xt_jat(桑巴) 
    怎么回事?这不是我的程序吗?
    其他人能不能告我全局变量怎么使?
      

  14.   

    你不说对话框不能显示吗,你点pop菜单不就能弹出来,你照着那个来不就得了
      

  15.   

    xt_jat(桑巴) :
    你好!我这几天都晕了,不好意思!
    对话框的问题,我发现是资源定义时出了问题,后来已解决了。
    能不能帮我解决一下,那个全局变量的定义怎么做?(说实话,MFC方面的书还没怎么看,准备暑假大补一下)
    谢谢·
      

  16.   

    sunraywang(missu)
    给我也发一个吧