2015-02-24 29 views
-2

我在Windows程序中使用資源編輯器添加了一個菜單,現在我想在某些特定條件下添加子菜單。 下面是我的一段代碼。如何在mfc中動態添加子菜單

這是我Menu.h文件

包括

類CmainWn:公共CFrameWnd的

{

市民:CmainWn();

DECLARE_MESSAGE_MAP()

AFX_MSG空隙OnAB();

};

類CAPP:公共的CWinApp

{

公共:BOOL的InitInstance();

};

這是我Menu.cpp

包括 「Menu.h」

包括 「RESOURCE.H」

CmainWn :: CmainWn()

{

Create(NULL,"Menu Testing",WS_OVERLAPPEDWINDOW,rectDefault,NULL,(LPCTSTR)IDR_MENU1); 

}

BOOL CAPP :: InitInstance中()

{

m_pMainWnd=new CmainWn(); 

m_pMainWnd->ShowWindow(m_nCmdShow); 

m_pMainWnd->UpdateWindow(); 

return true; 

}

空隙CmainWn :: OnAB()

{

AfxMessageBox("Hello"); 

}

BEGIN_MESSAGE_MAP(CmainWn,CFrameWnd的)

ON_COMMAND(ID_A_B, &CmainWn::OnAB) 

END_MESSAGE_MAP()

CAPP應用;

正如你所看到的代碼,我已經創建了名爲A的主菜單和一個名爲B的子菜單。 我想在B下動態地添加一個菜單。怎麼做?

+1

你的問題[這個問題(的格式不正確版本http://stackoverflow.com/q/28690886/1889329 )(問4個小時前)。 – IInspectable 2015-02-24 13:02:44

+0

你檢查http://stackoverflow.com/questions/3673546/dynamic-menu-using-mfc – GingerJack 2015-02-24 14:53:29

+0

@GingerJack是的,我已經通過,並能夠在運行時創建的動態菜單,但不能在追加的子菜單項消失我的主菜單。 – 2015-02-25 05:06:25

回答

-2

必須添加到您的Windows資源文件(項目名稱)的示例代碼。RC)

IDR_MENU1 MENU 
BEGIN 
     POPUP "Main menu" 
     BEGIN 
      MENUITEM "Menu Item 1", ID_WINDOWS_TEST 
      POPUP "Sub Menu" 
     BEGIN 
      MENUITEM "Sub Menu item 1",ID_WIN_TEXT 
     END 
    END 
END 

在資源視圖中查看這會顯示這樣的事情 enter image description here

+0

這不會動態添加菜單條目。 – IInspectable 2016-07-26 08:51:49

相關問題