關鍵技術:
級聯選單的建立主要是如何設定選單項的屬性,如果將選單項的屬性設定為poimip則選單項的右側就會出 現三角號。選單屬性設定如圖(a)、(b)所示。
圖(a)級聯選單
圖(b)勾選「pop-up」屬性
設計過程:
(1)在工作區視窗中選擇資源檢視(resourceview),用滑鼠右鍵單擊乙個節點,在彈出的快捷選單中選 擇insert命令,將開啟插入資源對話方塊。
(2)在資源型別列表中選擇menu節點,單擊new按鈕,將建立乙個選單。
(3)在選單設計視窗中按enter鍵開啟屬性視窗,在caption編輯框中設計選單標題。
(4)在新建選單下的虛線框上按enter鍵開啟屬性視窗可以新增子選單,在屬性視窗中設定子選單id和 選單的標題。
(5)想在哪個選單下建立級聯選單就在哪個選單的屬性視窗選中pop-up核取方塊,這樣,在選單項的右側 將顯示乙個箭頭,在箭頭指向的位置就可以建立級聯選單的子選單。
(6)在對話方塊中插入選單:右擊「對話方塊」--》屬性--》menu: idr_menu1
圖(c)選擇「選單」
(7)設定大圖示和小圖示的id號,大圖示:id_big,小圖示:id_samll。
圖(d)大圖示的id號
圖(e)小圖示的id號
(8)為大圖示和小圖示選單,分別關聯選單響應函式: on_command。在classview選項卡中,右擊***dlg-->add windows message handler-->在「class or object to handle」裡,選擇id_big;在「new window message/events」裡選擇command-->edit existing, 如下:(id_small的操作也是這樣)
圖(f)為選單新增響應函式
onbig()的**如下:
void cmenuchilddlg::onbig()
onsmall()的**如下:
void cmenuchilddlg::onsmall()
效果如下:
VC6中新增訊息對映
今天發現程式未顯示about box,分析發現,是因為程式未處理wm syscommand命令導致 但vc的classview裡好像不能直接處理該訊息 只好手動新增.記錄下方法和需要注意的地方。處理mfc的classview中沒有定義的訊息需要注意三個地方,如wm syscommand訊息,可以接收...
MFC中選單的命令響應順序
響應順序是 點選某選單項,框架類最先接到選單命令訊息。框架類把接收到得這個訊息交給它的子視窗,即檢視類。檢視類根據命令訊息對映機制查詢自身是否對此訊息進行了響應,如果響應了,就呼叫相應響應函式對這個訊息進行處理,訊息路由過程結束。如果檢視類未對此訊息響應,交給文件類,文件類同樣查詢自身是否對此訊息進...
VC6解決托盤選單不消失
cmenu menu menu.loadmenu idr mnu tray 2 cmenu pmenu menu.getsubmenu 0 cpoint point getcursorpos point setforegroundwindow 解決托盤選單不消失 pmenu trackpopupme...