加載用戶定義的菜單
在框架類CMainFrame的OnCreate函數中加載用戶自定義菜單。雙擊左側工作區中CMainFrame類的OnCreate函數。編輯代碼如下:
DockControlBar(& amp;m _ wndToolBar);
CMenu菜單;//聲明菜單對象
菜單。load menu(CG _ IDR _ POPUP _ MY _ VIEW);//添加黑色粗體代碼,括號中是用戶定義的菜單名稱。
this-SetMenu(& amp;菜單);//設置自定義菜單替換現有菜單返回0;;註意:如果您想創建壹個級聯菜單,您可以選擇彈出選項。
右鍵菜單的響應:
將WM_RBOTTONDOWN的響應函數OnRButtonDown添加到視圖類中,並在其中添加代碼,如下所示:
CMenu菜單;//定義菜單對象
菜單。load menu(IDR _ my menu);//加載菜單資源,在括號中定義菜單名稱。
CMenu *pSubMenu=menu。get submenu(0);//獲取第壹個頂級菜單
client to screen(& amp;點);//轉換坐標
pSubMenu-trackppopupmenu(TPM _ left align | TPM _ left button,
point.x,point.y,get parent());//彈出菜單
CView::onrbtuoundown(nFlags,point);
菜單項屬性對話框:若幹組選項ID(菜單項ID):壹般來說,菜單ID的取值要遵循以下原則:ID_頂層菜單名_下層菜單項名(_下層菜單項名)。比如:ID_LOLOR_RED。註意:彈出菜單不需要ID號。
標題(菜單項的名稱):可以是英文、中文、數字、符號等。註意:用戶可以在標題文本框中為菜單項定義快捷鍵,並在菜單標題的字母前輸入“&”。去做吧。如果菜單是中文的,必須用括號將快捷鍵的描述括起來,例如“新建”菜單項的快捷鍵使用“(&;n)”的定義。提示:標題文本框中還有壹串字符“\tCtrl+N”,用來表示該菜單項的快捷鍵。快捷鍵可以不打開菜單直接執行菜單項。
Separator復選框:如果選中此復選框,菜單項將成為分隔符,原始菜單項將丟失。如果用戶希望添加分隔線,可以將空白菜單拖動到需要分隔線的位置,然後選中該空白菜單的分隔符復選框。
彈出復選框:選中此復選框,菜單項會變成彈出菜單,即點擊此菜單會彈出下壹級子菜單。Visual C++6.0中默認的頂級菜單是彈出菜單。
非活動復選框:選中此復選框,曲面菜單項的初始狀態為非活動。
選中的復選框:此復選框是菜單初始值的復選標記。選中此復選框將在菜單項的左側打上勾號。
灰顯復選框:如果選中此復選框,菜單項將灰顯,表示菜單的初始狀態是不可訪問的。如果選中此復選框,則菜單必須處於非活動狀態,因此此時非活動復選框不可用。
幫助復選框:選擇此復選框,菜單將出現在菜單欄的右側。
Break(菜單項劃分):當壹個菜單的菜單項太多時,把它們放在壹列會感覺很長,很擁擠。這時候可以考慮分成兩欄來展示。Break扮演這個角色。Break選項對應壹個組合框,* * *有三個選項,分別是無、分欄和條形。
無:系統默認選項,表示無分割。
列:列拆分。選擇此項時,所選菜單項下面的菜單項將開始新的壹行。例如,在文件菜單中選擇打印菜單項的結果。
平行格式:類似分欄,也是分欄。只是和Column不同,兩列之間有豎線隔開。文本框:提示後可以在文本框中輸入文本。程序運行時,當鼠標移動到菜單項上時,底部狀態欄會給出該菜單的功能提示。