我需要在我正在编写的VS2010 SDI应用程序中创建一些动态菜单。我已经看过,但是不太了解
Dynamic menu using mfc
目前,我还不知道如何使用GetMenu从Doc文件中获取菜单的句柄。我正在尝试此操作,但是它说GetMenu不会接受零参数,即使我看到的许多示例都清楚地表明了这一点。
CMenu *menu = GetMenu();
menu->AppendMenu(MF_STRING, ID_HIDE, _T("Text"));
我要做的就是在一个子菜单下添加一个文件列表,该子菜单是从数据库中选择的(因此是动态部分),因此用户可以选择他们要处理的文件。
谢谢,
詹姆士
最佳答案
如果要在从GetMenu
派生的窗口类中调用CWnd
,则将调用CWnd::GetMenu
,它将不需要窗口句柄。如果从其他任何地方调用它,则会得到::GetMenu(HWND)
,并且需要传递窗口句柄。您可以从具有其m_hWnd
成员的任何CWnd对象或通过对其调用GetSafeHwnd()
来获取该句柄。