您的位置:首页 > 其它

VS2010 MFC 用默认设置生成的应用程序GetMenu返回空值

2014-11-13 11:01 656 查看
 


VS2010 MFC 用默认设置生成的应用程序GetMenu返回空值

分类: MFC VS2010 菜单 CMFCMenuBar2014-05-07
09:47 53人阅读 评论(0) 收藏 编辑 删除

           最近学习菜单,刚入门就遇见一个问题。问题描述如下:环境是VS2010,生成一个单文档但非文档视图结构的应用程序MenuTest,其余都是默认选项。然后在MenuTest.cpp的InitInstance()函数中想调用GetMenu()返回主菜单指针,结果却返回空值。

       原因是VS2010菜单不再使用CMenu,而是CMFCMenuBar,所以需要从这个对象里获取主菜单的指针。

       CMFCMenuBar 里又这样一个成员HMENU m_hMenu,它应该是主菜单句柄。

       还有个HMENU GetHMenu() const { return m_hMenu; }

       所以我在MenuTest.h文件里添加了一个函数

 HMENU GetMenuHMENU() {return m_wndMenuBar.GetHMenu();}

这样获得菜单句柄之后可以通过CMenu::FromHandle(HMENU hMenu)来获得菜单对象。

       另一种解决方法是在创建工程的过程中,大致在第4个Next,选中use a classic Menu,然后直接调用GetMenu()就可以返回指向菜单对象的指针。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  VS2010 mfc menu 对象
相关文章推荐