動態新增選單

2021-07-25 19:01:41 字數 2368 閱讀 7732

動態新增選單:是在原有的選單欄中用程式新增子選單,而不是視覺化操作; 在

mainframe

裡面的oncreate

函式裡面;

★注意:在

resource.h

中新增資源

id定義

#define idm_hello 111

建立資源

id,只是為了後面新增選單命令響應函式;

演算法://s1:

建立乙個空的彈出選單;

cmenu menu;

menu.createpopupmenu();

//s2:

獲取選單欄的指標;

//s3:

插入乙個子選單

,僅作演示,可以沒有

getmenu()->insertmenu(2,mf_byposition |

mf_popup,(uint)menu.m_hmenu,"winsun");

//s4:

新增子選單項,

idm_hello

,是乙個

resource.h

裡面的巨集定義符號常量

111

//s5:

脫離資源和指標

menu.detach();

完整程式如下:

int cmainframe::oncreate(lpcreatestruct lpcreatestruct)

if (!m_wndstatusbar.create(this) ||

!m_wndstatusbar.setindicators(indicators,  

sizeof(indicators)/sizeof(uint)))  

// todo: delete these three lines if you don't want the ******* to

//be dockable

m_wnd*******.enabledocking(cbrs_align_any);

enabledocking(cbrs_align_any);

dockcontrolbar(&m_wnd*******);

//s1:

建立乙個空的彈出選單;

cmenu menu;

menu.createpopupmenu();

//s2:

獲取選單欄的指標;

//s3:

插入乙個子選單

,僅作演示,可以沒有

getmenu()->insertmenu(2,mf_byposition | mf_popup,(uint)menu.m_hmenu,"winsun");

//s4:

新增子選單項,

idm_hello

,是乙個

resource.h

裡面的巨集定義符號常量

111

//s5:

脫離資源和指標

menu.detach();

return 0; }

新增/刪除系統選單

給系統選單新增

/刪除選單項

getmenu()->getsubmenu(0)->insertmenu(id_file_open,mf_bycommand | mf_string,115,"

維新");

getmenu()->

deletemenu

(1,mf_byposition);

getmenu()->getsubmenu(0)->

deletemenu

(2,mf_byposition);*/

getmenu()->

deletemenu

( getmenu()->getsubmenu(1)->getmenuitemid(0),mf_byc

ommand);

如何新增響應函式

★注意:因為是程式**新增選單,我們無法視覺化看到選單,就無法使用

classwizard

新增響應函式,只能手動新增:三個步驟;

第一步:在

mainfrm.h

中宣告訊息響應。

declare_message_map()

之前新增

afx_msg void onhello();

第二步:在

mainfrm.cpp

中end_message_map()

之前,新增

on_command(idm_hello,onhello)

第三步:在

mainfrm.cpp

中新增cmainframe::onhello()

函式定義

void cmainframe::onhello()

3 新增選單

每個應用程式都應該有乙個選單欄和乙個狀態列。讓我們將它們新增到我們的 python view plain copy self createstatusbar filemenu wx.menu infomation about this program close program menubar wx...

如何動態新增選單 選單項 子選單 右鍵選單

有關選單的操作主要用到 cmenu 類,當然也可用相應 api函式,cmenu 類只是mfc 對api 中操作選單的函式的封裝而已。不過能用類就盡量用類,類的組織方式好唄,看著也舒服。若是sdk 程式設計,那就用 api吧。cmenu menumain,menu1 首先 定義cmenu物件 一 建立...

如何動態新增選單 選單項 子選單 右鍵選單

有關選單的操作主要用到 cmenu 類,當然也可用相應 api函式,cmenu 類只是mfc 對api 中操作選單的函式的封裝而已。不過能用類就盡量用類,類的組織方式好唄,看著也舒服。若是sdk 程式設計,那就用 api吧 cmenu menumain,menu1 首先 定義cmenu物件 一 建立...