vs2010 标记菜单问题

来源:互联网 发布:传智播客java笔记 编辑:程序博客网 时间:2024/05/29 18:03

在vs2010下,想实现标记菜单的功能

问题:

在  CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 函数的return语句之前,加上这样一行代码:

       CMenu *pMenu=GetMenu();
ASSERT_VALID(pMenu);
CMenu *pSubMenu=pMenu->GetSubMenu(0);
ASSERT_VALID(pSubMenu);
pSubMenu->CheckMenuItem(0,MF_BYPOSITION|MF_CHECKED);

欲实现在File菜单下的New之前打上勾的作用,结果出现崩溃:



VS2010中CMainFrame::OnCreate()函数里用GetMenu()无法获取菜单指针


通过各方查资料,解决方法如下:

在整个项目中搜索:m_wndMenuBar,把与它有关的代码都注释掉,这样再运行,就没问题了。

网上搜了下,原因是Vs2010建的SDI/MDI与之前的不一样,是类似BCG的一些东西,具体我也不清楚,还望懂的高手们指点!


参考:http://social.msdn.microsoft.com/Forums/zh-CN/visualcpluszhchs/thread/b0c59097-ed5f-48a0-a04e-2fc684d1fc7a/