posts - 7, comments - 5, trackbacks - 0, articles - 4

利用SetMenuItemInfo()来无效化菜单

Posted on 2008-10-27 21:37 阿呆 阅读(2188) 评论(0)  编辑 收藏 引用 所属分类: MFC工作随笔
一般来说,无效化菜单项可以用EnableMenuItem(ID,enable)来实现。但是,如果某个菜单项下还有subitem,那这个菜单项是没有ID的,这时不能用EnableMenuItem来实现,但可以用SetMenuItemInfo来灰化。

可以在MainFram类的OnCreate函数中添加以下代码:
 1    CMenu* pMainMenu = GetMenu();
 2    if (pMainMenu != NULL && pMainMenu->GetMenuItemCount() >= 5)
 3    {
 4        CMenu* pSubMenu = pMainMenu->GetSubMenu(4);//start from 0
 5        assert(pSubMenu);
 6         MENUITEMINFO MenuItemInfo;
 7         MenuItemInfo.cbSize = sizeof(MENUITEMINFO);
 8         MenuItemInfo.fMask = MIIM_STATE;
 9         MenuItemInfo.fState = MFS_GRAYED;
10         pSubMenu->SetMenuItemInfo(0&MenuItemInfo, TRUE);//start from 0
11    }

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理