【问题标题】:Dynamic menus in MFCMFC 中的动态菜单
【发布时间】:2012-06-20 16:33:21
【问题描述】:

我需要在我正在编写的 VS2010 SDI 应用程序中创建一些动态菜单。这个我看过,但不是很懂 Dynamic menu using mfc

目前,我什至不知道如何使用 GetMenu 从我的 Doc 文件中获取菜单句柄。我正在尝试这个,但它说 GetMenu 不接受零参数,尽管我见过的许多例子都清楚地表明了这一点。

CMenu *menu = GetMenu();


        menu->AppendMenu(MF_STRING, ID_HIDE, _T("Text"));

我要做的就是在子菜单下添加一个文件列表,从数据库中选择(因此是动态部分),以便用户可以选择他们想要处理的文件。

谢谢, 詹姆斯

【问题讨论】:

  • 我相信它需要HWND,所以它知道要获取哪个菜单。
  • 嗨,如果你能告诉我我会怎么做,我将不胜感激?
  • 您可以使用多种方式,包括FindWindow 来获取句柄。我不确定所有 mfc 都为此提供什么,但是您可以将 HWND 传递进去。对于子菜单,您可以使用 GetSubMenu。

标签: c++ mfc


【解决方案1】:

如果您在从CWnd 派生的窗口类中调用GetMenu,您将调用CWnd::GetMenu,它不需要窗口句柄。如果您从其他任何地方调用它,您将获得::GetMenu(HWND),并且您需要传递一个窗口句柄。您可以从任何带有 m_hWnd 成员的 CWnd 对象或调用 GetSafeHwnd() 获取句柄。

【讨论】:

猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多