您的位置:首页 > 其它

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

2011-12-01 14:31 239 查看
在做一个工程时,经常会用到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;
}



















                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  框架 文档