Visual c++ MDI应用程序中的文档ptr始终为空

Visual c++ MDI应用程序中的文档ptr始终为空,visual-c++,mfc,mdi,Visual C++,Mfc,Mdi,我正在开发一个MDI应用程序,其中我有两个视图。以下是添加视图和文档的代码: CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_STRING_FILTERWINDOW, RUNTIME_CLASS(CEmuDiagnosticsClientDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame

我正在开发一个MDI应用程序,其中我有两个视图。以下是添加视图和文档的代码:

CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_STRING_FILTERWINDOW,
        RUNTIME_CLASS(CEmuDiagnosticsClientDoc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CFilterWindow));
if (!pDocTemplate)
    return FALSE;
AddDocTemplate(pDocTemplate);


//adding another template    
CMultiDocTemplate* pDocTemplate1;
pDocTemplate1 = new CMultiDocTemplate(IDR_STRING_SIGNALWINDOW,
        RUNTIME_CLASS(CEmuDiagnosticsClientDoc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CSignalWindow));
if (!pDocTemplate1)
    return FALSE;
AddDocTemplate(pDocTemplate1);
我有2个视图和1个文档

我的要求是根据一些通知更新
CSignalWindow
视图。运行此应用程序时,我打开了一个
CSignalWindow
视图,为了更新此视图,我编写了以下代码:

for( POSITION pos = AfxGetApp()->GetFirstDocTemplatePosition(); pos != NULL; )
{
    pTempl = AfxGetApp()->GetNextDocTemplate(pos );
    for( POSITION pos1 = pTempl->GetFirstDocPosition(); pos!= NULL; )
    {
        if (pos1 == NULL)
            break;
        CDocument* pDoc = pTempl->GetNextDoc( pos1 );
        for( POSITION pos2 = pDoc->GetFirstViewPosition(); pos2 != NULL; )
        {
            CView* pView = pDoc->GetNextView( pos2 );
            if( pView->IsKindOf( RUNTIME_CLASS(CSignalWindow) ) )
            {
                pView->UpdateData(true);
            }
        }
    }
}
但是
pos1
总是在这一行出现
NULL

for( POSITION pos1 = pTempl->GetFirstDocPosition(); pos!= NULL; )
POSITION pos1 = pTempl->GetFirstDocPosition(); pos!= NULL; )

我无法理解为什么它总是返回
NULL

这一行有复制粘贴错误:

for( POSITION pos1 = pTempl->GetFirstDocPosition(); pos!= NULL; )
POSITION pos1 = pTempl->GetFirstDocPosition(); pos!= NULL; )
应该是:

POSITION pos1 = pTempl->GetFirstDocPosition(); pos1!= NULL; )

他一定是抄袭了我的密码,因为我有完全相同的打字错误。