VS2010 MFC 用默认设置生成的应用程序GetMenu返回空值
2014-11-13 11:01
656 查看
VS2010 MFC 用默认设置生成的应用程序GetMenu返回空值
分类: MFC VS2010 菜单 CMFCMenuBar2014-05-0709: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中Silverlight应用程序的默认浏览器
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- VS2010/MFC编程入门之一(利用MFC向导生成单文档应用程序框架)
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- (转载)VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- 用VS2010建了一个默认的MFC应用程序,编译后出现如下错误。
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- VS2010生成安装包 设置默认安装路径
- VS2010/MFC编程入门之一(利用MFC向导生成单文档应用程序框架)
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- 【转】如何更改VS2010的[默认开发语言]默认环境设置 .
- 排除“计算机-默认 权限设置未将 COM 服务器应用程序”的错误
- 【转】 asp.net从视频文件中抓取一桢并生成图像文件的方法 实现多语言本地化应用程序 自动返回上次请求页面
- 【原创】vc2010下设置应用程序的默认运行权限
- 如何更改VS2010的[默认开发语言]默认环境设置
- 在VS2010开发的MVC3 应用程序中设定默认的浏览器
- windows启动时自动打开的应用程序窗口默认设置为全屏?
- iphone 应用程序设置和默认设置