无法创建MDI程序,提示建立空文档失败,提示异常:winmdi.cpp line:513

无法创建MDI程序,提示建立空文档失败,提示错误:winmdi.cpp line:513
创建一个MDI程序,会提示建立空文档失败,但在此之前,则会先弹出提示,指出
winmdi.cpp在line513处错误,
C/C++ code

跟踪下来,是在CMDIChildWnd::Create函数中    
ASSERT(::IsWindow(pParentWnd->m_hWndMDIClient));语句错误

查看了pParentWnd的m_hWndMDIClient变量,为null,0x00000000
    if (pParentWnd == NULL)
    {
        CWnd* pMainWnd = AfxGetThread()->m_pMainWnd;
        ASSERT(pMainWnd != NULL);
        ASSERT_KINDOF(CMDIFrameWnd, pMainWnd);
        pParentWnd = (CMDIFrameWnd*)pMainWnd;
    }
    ASSERT(::IsWindow(pParentWnd->m_hWndMDIClient));
在APP的initinstance中,也是同样的建立方式
    CMultiDocTemplate* pDocTemplate;
    pDocTemplate = new CMultiDocTemplate(
        IDR_PCSWTYPE,
        RUNTIME_CLASS(CPCSWDoc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CPCSWView));
    AddDocTemplate(pDocTemplate);
    CMainFrame* pMainFrame = new CMainFrame;
    if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
        return FALSE;
    m_pMainWnd = pMainFrame;

    // Parse command line for standard shell commands, DDE, file open
    CCommandLineInfo cmdInfo;
     ParseCommandLine(cmdInfo);

//     cmdInfo.m_nShellCommand = CCommandLineInfo::FileNew;
    // Dispatch commands specified on the command line
    if (!ProcessShellCommand(cmdInfo))
        return FALSE;

而CPCSWView的OnInitUpdate则什么都不做,一样失败;



与之相关的问题被困扰了好久,依旧没解决完全,路过的高手看看,指点一下,多谢了

------解决方案--------------------
又见楼主啊

pParentWnd->m_hWndMDIClient报告错误的话,就说明窗体没有建立完成嘛
------解决方案--------------------
你先把你在程序里初始化函数里增加的代码屏蔽掉,一点一点,每加一点就试一次.象这种情况有很多原因,有时在程序运行前先调用一个文件因为文件的目录不对也会这样,同样,在程序运行前也就是在APP里的加上建立窗口或视图时也会出这种问题
------解决方案--------------------
CMyTree和CPCSWView这两个视图很可能还没建立就执行OnCreateClient这个函数了,你在每个类的初始化函数里加上断点看看程序运行顺序是否正确,就是每个初始化函数时在这个函数里的所有的象视,窗口什么的都已建立完了.象这样就单步执行吧,看在哪个函数哪条语句出的问题