MDI多文档中如何对动态处理子框架的菜单

来源:互联网 发布:新楼兰怎么样知乎 编辑:程序博客网 时间:2024/05/21 14:03

在做一个工程时,经常会用到MDI多文档工程。在MDI中,有主框架和众多子框架。

如果要动态的更改主框架的菜单,很容易。在CMainFrame类中的OnCreate函数返回之前,处理即可。

代码如下:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CMDIFrameWnd::OnCreate(lp   CreateStruct) == -1)return -1;CMenu *pMenu = NULL;pMenu = GetMenu();BOOL bDelete = FALSE;bDelete = pMenu->DeleteMenu(2,MF_BYPOSITION);DrawMenuBar();return 0;}
可是在子框架中这样用,就会出错,主要因为在子框架中用 GetMenu()无法获取子框架对应菜单的句柄m_hMenu。所以必须用一下方法即可。代码位置在子框架所对应的CMyFrame类中
int CProjectFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)return -1;CMenu *pMenu = NULL;pMenu = CMenu::FromHandle(m_hMenuShared); //此处为更改BOOL bDelete = FALSE;bDelete = pMenu->DeleteMenu(2,MF_BYPOSITION);DrawMenuBar();return 0;}
	
				
		
原创粉丝点击