在vc6.0和vs2010裡面動態新增選單項是不一樣的,檢視msdn文件可知,vs2010採用的是mfc9.0版,其中有很多新增的項具體資訊請檢視本文就根據自己的測試詳細的比較一下二者的區別:
1.在vc6.0裡面動態新增乙個子選單項:
在cmainframe::onctreate()中新增**,另外要在resource.h裡面新增#define id_menu_addmenuitem 32773
cmainframe::onctreate()//效果是在「edit」選單最下面新增了乙個"add menu item"子項
2.在vs2010裡面新增乙個子選單項:
要對cmainframe類的onshowpopupmenu()進行過載,另外要在resource.h裡面新增#define ids_edit_myitem_1 32773
bool cmainframe::onshowpopupmenu(cmfcpopupmenu* pmenupopup)
//使用commandtoindex()來獲得選單項的索引,然後根據索引來確定子選單項的新增位置
return cframewndex::onshowpopupmenu(pmenupopup);
}//效果是在「edit」選單最下面新增了乙個分割線和乙個"myitem 1"子項
效果如圖,因為還沒有為其新增處理函式,所以呈灰色:
給新增的子選單項新增訊息處理函式:
在mainframe.h裡面新增訊息處理函式宣告:
class cmainframe : public cframewnd{
protected:
afx_msg void oneditmyitem1 ();
然後在mainframe.cpp訊息對映裡面新增訊息對映項:
begin_message_map(cmainframe, cframewnd)
//…
on_command(ids_edit_myitem_1, oneditmyitem1)
end_message_map()
cmfcmenubar的繼承關係:
cobject
ccmdtarget
cwnd
cbasepane
cpane
cmfcbase*******
cmfc*******
cmfcmenubar
Deepin 新增選單項
在linux中,選單項和桌面快捷方式使用.desktop字尾的檔案,主要配置了應用的圖示和啟動指令碼的位置,以及啟動引數等,在配置檔案中也可以加入分類資訊和描述資訊。今天在安裝arduino ide的時候,偶然看到安裝指令碼在新增xdg desktop menu開始選單項和桌面快捷方式的時候使用的是...
Windows右鍵新增選單項
1 執行regedit,開啟登錄檔編輯器 2 定位到 hkey classess root shell 右鍵 新建 項 輸入準備顯示右鍵的名稱,如 使用notepad 編輯 在新建的項上右鍵 新建 字串值 輸入帶雙引號的檔案路徑,如 d programs notepad notepad exe ps...
如何動態新增選單 選單項 子選單 右鍵選單
有關選單的操作主要用到 cmenu 類,當然也可用相應 api函式,cmenu 類只是mfc 對api 中操作選單的函式的封裝而已。不過能用類就盡量用類,類的組織方式好唄,看著也舒服。若是sdk 程式設計,那就用 api吧。cmenu menumain,menu1 首先 定義cmenu物件 一 建立...