MFC 中的动态菜单

Dynamic menus in MFC

本文关键字:菜单 动态 MFC      更新时间:2023-10-16

我需要在我正在编写的VS2010 SDI应用程序中创建一些动态菜单。我见过这个,但并不真正理解它使用 mfc 的动态菜单

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

CMenu *menu = GetMenu();

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

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

谢谢詹姆斯

如果从派生自 CWnd 的窗口类中调用GetMenu,则将调用CWnd::GetMenu,并且不需要窗口句柄。如果从其他任何位置调用它,则会得到::GetMenu(HWND),并且需要传递窗口句柄。可以从任何 CWnd 对象及其m_hWnd成员获取句柄,也可以通过对其调用 GetSafeHwnd() 来获取句柄。