在视图的成员函数中建立一个无模式的对话框!
成员函数:
void CVido_exe1View::OnId2() 
{
// TODO: Add your command handler code here
if(this->m_pDialog1==NULL)
{
m_pDialog1=new CDialog1(this);
m_pDialog1->Create(CDialog1::IDD);
}
m_pDialog1->ShowWindow(SW_SHOW);
m_pDialog1->SetFocus();
}
第一次还可以编译,运行,只是在调用到这个函数的时候,有错误发生,
第二次在m_pDialog1->Create(CDialog1::IDD,this);多写了个this
就出现了下列的问题
-------------------Configuration: vido_exe1 - Win32 Debug--------------------
Compiling...
vido_exe1View.cpp
WINOCC.CPP
D:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC\WINOCC.CPP(416) : error C2027: use of undefined type 'CHandleMap'
        d:\program files\microsoft visual studio\vc98\mfc\include\afxstat_.h(109) : see declaration of 'CHandleMap'
D:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC\WINOCC.CPP(416) : error C2227: left of '->LookupPermanent' must point to class/struct/union
Generating Code...
Error executing cl.exe.vido_exe1.exe - 2 error(s), 0 warning(s)
我怎么改都有这个错误.把牵扯到对话框类的所有东西都删除,还有这个错误,特别是那个cl.exe,想请问大家是个什么东西.跪求了!

解决方案 »

  1.   

    是这个文件中定义的,我也不知道是什么东东!WINOCC.CPP
      

  2.   

    兄弟们,我自己解决了,呵呵!
    vc在编译的时候自动为工程中添加了winocc.cpp文件,只要把它删掉就行了!
      

  3.   

    不过还有的问题就是,为什么这样创建的无模式对话框就不能正常工作?
    void CVido_exe1View::OnId2() 
    {
    // TODO: Add your command handler code here
    if(this->m_pDialog1==NULL)
    {
    m_pDialog1=new CDialog1(this);
    m_pDialog1->Create(CDialog1::IDD);
    }
    m_pDialog1->ShowWindow(SW_SHOW);
    m_pDialog1->SetFocus();
    }
    程序能正常运行,但是每次调用这个函数后就会出错,调试是
    m_pDialog1->ShowWindow(SW_SHOW);有问题BOOL CWnd::ShowWindow(int nCmdShow)
    {
    ASSERT(::IsWindow(m_hWnd));
    说这个断言有问题:m_hWnd=???,怎么会这样?
    if (m_pCtrlSite == NULL)
    return ::ShowWindow(m_hWnd, nCmdShow);
    else
    return m_pCtrlSite->ShowWindow(nCmdShow);
    }
      

  4.   

    m_pDialog1->Create(CDialog1::IDD);
     
    这句执行成功了没有? 如果没有成功,也就是窗口没有创建, 则调用ShowWindow就会断言错
      

  5.   

    楼上好像有道理喔...Create()不一定创建成功的喔...这里跟住楼主的惯性思维走了...
      

  6.   

    我以前也试过这样的用法,但是没有发生像你这样的问题,从你提供的程序也没有问题呀!请检查程序的其它地方,如果不能解决,可以发邮件:[email protected],把你的原文件发给我看看。
    或者从QQ联系:361577203
      

  7.   

    那如何让m_pDialog1->Create(CDialog1::IDD)一定成功呢?
      

  8.   

    VERIFY(m_pDialog1->Create(CDialog1::IDD));一定要成功,否则这里会触发一个异常.Create不成功原因很多的. 要仔细检查了,如资源句柄的问题.ID号有没有错
      

  9.   

    我知道问题出在哪儿了,呵呵!我的m_pDialog1没有赋初值,呵呵,
    m_pDialog1=NULL;谢谢大家,我要散分了