在MDI窗口中取消主菜单以及子框架窗口的显示,解决方法来源于网上,步骤如下:
(1)删除子框架菜单IDR_XXXTYPE,为了保险,此步似乎可省略(无测试).
注意:不能删除主框架菜单IDR_MAINFRAME,否则出错.
(2)重载PreCreateWindow函数
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
if(cs.hMenu!=NULL)
{
DestroyMenu(cs.hMenu);
cs.hMenu=NULL;
}
return TRUE;
}
(3)重载LoadFrame函数,注意与原函数的差别:CMDIFrameWnd---->CFrameWnd
BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle , CWnd* pParentWnd , CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
return CFrameWnd::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext);
}
(4)重载OnCreateClient函数,注意与原函数的差别:OnCreateClient(lpcs,pContext)---->CreateClient(lpcs,NULL)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
return CreateClient(lpcs, NULL);
}