今天学习VC++ 2010 MFC单文档应用程序中动态添加菜单,下面是代码部分:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	......
	CMenu m_Menu;
	m_Menu.CreatePopupMenu();
	ASSERT(m_Menu.GetSafeHmenu());
	GetMenu()->AppendMenuW(MF_POPUP,(UINT)m_Menu.m_hMenu,_T("文件"));
	m_Menu.AppendMenuW(MF_STRING,111,_T("新建"));
	m_Menu.AppendMenuW(MF_STRING,112,_T("打开"));
	m_Menu.Detach();

	return 0;
}

  但是GetMenu()返回始终未NULL,无法获取菜单指针,网上查了下,说VS2010建的SDI/MDI与之前的不一样,是类似BCG的一些东西,所以用之前的方法GetMenu()得到CMenu是NULL或者无效。

【解决方案】

  在CMainFrame类中找到CMFCMenuBar m_wndMenuBar;这个成员变量,将跟它相关的代码注释掉的话,然后运行,OK。

相关文章:

  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2021-05-20
  • 2021-11-23
猜你喜欢
  • 2022-12-23
  • 2021-11-11
  • 2021-06-16
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2021-12-13
相关资源
相似解决方案