调试一个有关对话框的程序,调试通过,当运行时,按OK按钮,就出现 图片,显示AA.exe遇到问题需要关闭,我们对此引起的不便表示抱歉的对话框,代码如下:
CDialog myDialog(IDD_GIVECODE,this);
     if(myDialog.DoModal()==IDOK)
 {
 if (myDialog.m_code.GetLength()!=13)
 {
 AfxMessageBox("请输入正确的数字!"); 
 return;
  }…………
          }
请问是什么原因呢?谢谢指教~~~~

解决方案 »

  1.   

    myDiaolg创建成功了没有?
    你上面的代码是在哪里面写的?
      

  2.   

    没有这么使用CDialog的,最简单的方法就是使用向导自动生成CXXXDialog的类,由向导生成类代码
    直接使用CDialog需要一些技巧
      

  3.   

    CDialog   myDialog(IDD_GIVECODE,this); 
    不能这么写,如果想手动创建,可以类似:
    CDialog myDialog;
    mDialog.Create();//参数你自己自查查MSDN吧
      

  4.   

    CDialog  myDialog ; 
     myDialog.Create(IDD_GIVECODE,this); 
    myDialog.DoModal();
      

  5.   

      CGiveCodeDlg myDialog;
      if(myDialog.DoModal()==IDOK) 
      { 
         if   (myDialog.m_code.GetLength()!=13) 
         { 
         AfxMessageBox( "请输入正确的数字! ");   
         return; 
         }………… 
    看看这段代码是在哪个cpp下,要添加CGiveCodeDlg.h 试试看吧
      

  6.   

    iyranly: CGiveCodeDlg   myDialog; 这么创建的话,无法调用myDialog的DoModal函数阿,CGiveCodeDlg.h 已经添加了
      

  7.   

    lzf8977:
      CDialog     myDialog   ;   
      myDialog.Create(IDD_GIVECODE,this);   
      myDialog.DoModal();
    这么创建了,但是又出现了新的问题,error C2062: type 'class CDialog' unexpected
    这个错误出现的代码是:
    class GiveCodeDlg : public CDialog
    {
      public:
    GiveCodeDlg(CWnd* pParent = CDialog); …………
    我查了半天也找不出原因,网上也找不到相关的资料,再请指教下,谢谢~~~很急啊!!!
      

  8.   

    GiveCodeDlg(CWnd* pParent = NULL);   
      

  9.   

    我五分钟把这个程序搞定,建议你重新建一个工程
    我的主要代码也是以上我给你那个,没有问题,DoModal也调用成功。。void CMainFrame::OnShow() 
    {
    // TODO: Add your command handler code here
    CGiveCodeDlg myDialog;
    if(myDialog.DoModal()==IDOK)   
    {   
    if (myDialog.m_code.GetLength()!=13)   
    {   
    AfxMessageBox(   "请输入正确的数字!   ");       
    return;   
    }  
    }
    }如有问题可以找我,我给你看程序
      

  10.   

    1、 建立一个单文档,其他默认;
    2、 添加一个对话框,ID为IDD_GIVECODE;双击对话框的IDOK按钮Create New Class,选择类名为CGiveCodeDlg,基类为CDialog;
    3、 添加一个菜单ID_SHOW,添加单击事件OnShow(),在Mainframe中添加#include “GiveCodeDlg”;
    4、 编写代码:
    void CMainFrame::OnShow() 
    {
        // TODO: Add your command handler code here
        CGiveCodeDlg myDialog;
        if(myDialog.DoModal()==IDOK)   
        {   
            if (myDialog.m_code.GetLength()!=13)   
            {   
                AfxMessageBox(   "请输入正确的数字!   ");       
                return;   
            }  
        }
    }注意:你的对话框默认为popup!,不要为Child!
    运行。
      

  11.   

    来晚了,楼主刚学MFC吧.
    这种经历大家都有过的