2012-06-20 63 views
0

我需要在我编写的VS2010 SDI应用程序中创建一些动态菜单。我已经看到了这个,但并没有真正理解它 Dynamic menu using mfcMFC中的动态菜单

目前,我不知道如何甚至使用GetMenu从我的Doc文件中获取菜单的句柄。我正在尝试这样做,但它说GetMenu不会采用零参数,尽管我已经看到很多例子清楚地表明了这一点。

CMenu *menu = GetMenu(); 


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

所有我想要做的就是添加文件列表的子菜单,从数据库(因此动态部分)选择下方,因此用户可以选择他们想要去努力的人。

谢谢, 詹姆斯

+0

我相信它需要一个'HWND',所以它知道要获取哪个菜单。 – chris

+0

嗨,如果你能告诉我怎么做,我会非常感激? – James

+0

你可以使用各种各样的东西,包括'FindWindow'来获取句柄。我不确定所有mfc都提供了什么,但是你可以通过'HWND'。对于子菜单,你可以使用'GetSubMenu'。 – chris

回答

1

如果你调用从CWnd派生的窗口类中GetMenu,你会被调用CWnd::GetMenu,它不会需要一个窗口句柄。如果你从其他地方打电话给你,你会得到::GetMenu(HWND),你需要通过一个窗口句柄。您可以通过其m_hWnd成员或通过调用GetSafeHwnd()来获取任何CWnd对象的句柄。

+0

我发现这个网站是非常有用的展示如何得到不同的对象类型,http://forums.codeguru.com/showthread.php?281430-MFC-Doc-View-How-to-obtain-a-指针到各种对象 – James