CFrameWnd* CMyDocTemplate::CreateNewFrame(CDocument* pDoc, CFrameWnd* pOther)
{
// 创建一个新的框架窗口
CFrameWnd* pFrame = NULL;
TRY
{
pFrame = m_pFrameClass->CreateObject();
if (pFrame == NULL)
{
AfxThrowMemoryException();
}
}
CATCH_ALL(e)
{
UNUSED(e);
// 处理内存分配失败的情况
AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
return NULL;
}
END_CATCH_ALL
// 将框架窗口与文档关联
if (!pFrame->LoadFrame(m_nIDResource, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, pOther))
{
// 处理加载框架窗口失败的情况
delete pFrame;
return NULL;
}
// 将文档与框架窗口关联
InitialUpdateFrame(pFrame, pDoc, TRUE);
// 返回新创建的框架窗口
return pFrame;
}
在这个方法中,首先通过 m_pFrameClass->CreateObject() 创建一个新的框架窗口。然后,通过 LoadFrame 方法加载框架窗口,并通过 InitialUpdateFrame 将文档与框架窗口关联。最后,返回新创建的框架窗口。
需要注意的是,具体的实现可能因 MFC 库的版本而有所不同,上述代码只是一个简单的示例。在实际使用中,你可能需要根据具体的情况进行适当的调整。
转载请注明出处:http://www.zyzy.cn/article/detail/17478/MFC/CDocTemplate