我在 CMyApp::Initintance() 中使用 LoadMDIState() 来加载/恢复以前的 MDI-Doc 的窗口位置。
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
if (!pMainFrame->LoadMDIState(GetRegSectionPath()))
{
m_pStartDocTemplate->OpenDocumentFile(NULL); // Load previous Document
}
}
如果他在 Serialize() 期间的内部状态设置为
CMDIClientAreaWnd::m_bTabIsEnabled = FALSE;
但是如果儿子的内部状态是
CMDIClientAreaWnd::m_bTabIsEnabled = TRUE;
我在 MFC 源代码中调查了这个错误,并在
void CMDIClientAreaWnd::EnableMDITabs(BOOL bEnable, const CMDITabInfo& params)
{
if (m_bIsMDITabbedGroup)
{
EnableMDITabbedGroups(FALSE, params);
}
:
}
void CMDIClientAreaWnd::EnableMDITabbedGroups(BOOL bEnable, const CMDITabInfo& mdiTabParams)
{
if (m_bTabIsEnabled)
{
EnableMDITabs(FALSE, mdiTabParams);
}
:
}
这是一个错误吗?以及如何解决 MDI 选项卡式视图的这个问题?