现在的位置: 首页 > 综合 > 正文

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

2017年10月01日 ⁄ 综合 ⁄ 共 673字 ⁄ 字号 评论关闭

在做一个工程时,经常会用到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;
}


















抱歉!评论已关闭.