2012-06-20 69 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