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

  • 问题

  • 在创建MFC时,没有选择Classic Menu,在CMainFrame::OnCreate()函数return 语句之前用GetMenu()无法获取菜单指针。如果创建MFC工程时选择Classic Menu,则可以。

     

    请问,如果创建的工程时,菜单并有选择Classic Menu,怎么获取菜单指针?


    难得改
    2011年7月8日 9:02

答案

  • VS2010建的SDI/MDI与之前的不一样,是类似BCG的一些东西,所以用之前的方法GetMenu()得到CMenu是NULL或者无效。
    您可以在CMainFrame类中找到CMFCMenuBar m_wndMenuBar;这个成员变量,如果您将跟它相关的代码注释掉的话,然后再试试GetMenu()函数看看。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 难得改a 2011年7月11日 0:32
    2011年7月11日 0:08
    版主

全部回复

  • VS2010建的SDI/MDI与之前的不一样,是类似BCG的一些东西,所以用之前的方法GetMenu()得到CMenu是NULL或者无效。
    您可以在CMainFrame类中找到CMFCMenuBar m_wndMenuBar;这个成员变量,如果您将跟它相关的代码注释掉的话,然后再试试GetMenu()函数看看。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 难得改a 2011年7月11日 0:32
    2011年7月11日 0:08
    版主
  • 问题正是如您所说的那样,已经按照您所说的方法解决了!我是新手,真是非常感谢您不嫌麻烦的帮助!

    I do appreciate your help!


    难得改
    2011年7月11日 0:39
  • VS2010建的SDI/MDI与之前的不一样,是类似BCG的一些东西,所以用之前的方法GetMenu()得到CMenu是NULL或者无效。
    您可以在CMainFrame类中找到CMFCMenuBar m_wndMenuBar;这个成员变量,如果您将跟它相关的代码注释掉的话,然后再试试GetMenu()函数看看。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    这明显不是个好方法,还有吗?
    2013年1月23日 7:17