MFC菜單以及與菜單相關(guān)聯(lián)的操作

MFC菜單以及與菜單相關(guān)聯(lián)的操作

ID:41059285

大?。?38.46 KB

頁數(shù):24頁

時間:2019-08-15

MFC菜單以及與菜單相關(guān)聯(lián)的操作_第1頁
MFC菜單以及與菜單相關(guān)聯(lián)的操作_第2頁
MFC菜單以及與菜單相關(guān)聯(lián)的操作_第3頁
MFC菜單以及與菜單相關(guān)聯(lián)的操作_第4頁
MFC菜單以及與菜單相關(guān)聯(lián)的操作_第5頁
資源描述:

《MFC菜單以及與菜單相關(guān)聯(lián)的操作》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、菜單以及與菜單相關(guān)聯(lián)的操作消息的分類標準消息除WM_COMMAND之外,所有以WM_開頭的消息。從CWnd派生的類,都可以接收到這類消息。命令消息來自菜單、加速鍵或工具欄按鈕的消息。這類消息都以WM_COMMAND呈現(xiàn)。在MFC中,通過菜單項的標識(ID)來區(qū)分不同的命令消息;在SDK中,通過消息的wParam參數(shù)識別。從CCmdTarget派生的類,都可以接收到這類消息。通告消息由控件產(chǎn)生的消息,例如,按鈕的單擊,列表框的選擇等均產(chǎn)生此類消息,為的是向其父窗口(通常是對話框)通知事件的發(fā)生。這類消息也是以WM_COMM

2、AND形式呈現(xiàn)。從CCmdTarget派生的類,都可以接收到這類消息。一個類接收一個命令消息后,文件做了哪些修改?(a)在類的定義中的消息映射中添加命令消息函數(shù)原型(b)在源文件的消息映射中用ON_COMMAND宏將菜單項的ID號和命令消息響應函數(shù)進行關(guān)聯(lián)(c)在源文件中增加了命令消息響應函數(shù)。它的形式跟Windows標準消息是一樣的,不同的是ON_COMMAND宏。標準的Windows消息的路由:直接在消息映射表中上溯,在消息映射表中查找,如果吻合就調(diào)用表中所記錄的消息處理程序。命令消息的路由呢?命令消息的路由AfxW

3、ndProcAfxCallWndProcWindowProcOnWndMsgOnCommandOnNotifyOnCmdMsg視圖類----->文檔類----->框架類----->應用類命令消息接收物的類型處理次序Frame窗口1、View2、Frame窗口對象3、CWinApp對象View1、View本身2、DocumentDocument1、Document本身2、DocumentTemplate添加2個菜單,ID值分別為IDM_UNDO和IDM_DELETE_ALL,分別用來刪除最后畫的一條直線和窗口中所有的直線。

4、(1)為視圖類添加對這2個菜單項的消息響應(2)OnUndo(){intnUpperBound=m_ptrArray.GetUpperBound();if(nUpperBound<0)return;CLine*pline=(CLine*)(m_ptrArray.GetAt(nUpperBound));deletepline;m_ptrArray.RemoveAt(nUpperBound);Invalidate();}(3)OnDeleteAll(){intnCount=m_ptrArray.GetSize();for(i

5、nti=0;i

6、菜單添加命令更新消息后,在消息映射中,一個宏,用來把該消息和處理這個消息的消息響應函數(shù)進行關(guān)聯(lián)了。更新命令UI處理程序僅應用于彈出式菜單項上的項目,不能應用于永久顯示的頂級菜單項目。如File、Edit等。菜單300301302303304主任室012301234樓層房間菜單的結(jié)構(gòu)獲取菜單欄菜單欄是屬于框架的,在框架類中可以通過GetMenu方法去得到菜單欄。CMenu類提供了函數(shù)對菜單進行操作。GetSubMenu可以獲取一個子菜單。GetMenu和GetSubMenu都是返回指向菜單的指針,但前者是返回指向菜單欄的指

7、針,而后者返回指向子菜單的指針。右鍵單擊彈出菜單在VC中已做好。通過Project?AddToProject?組件,選擇PopupMenu就可。選擇增加一個彈出菜單到哪個窗口,不要選擇框架。要增加到視圖窗口。視圖窗口始終覆蓋在框架上,框架類是不能響應鼠標消息的,而右鍵單擊是鼠標消息。實現(xiàn)機制?首先增加了一個菜單資源,然后增加了一個函數(shù)OnContentMenu,在該函數(shù)內(nèi)調(diào)用TrackPopupMenu來繪制菜單手工實現(xiàn)右鍵單擊彈出菜單(1)增加一個彈出菜單。Abc下有2個菜單,Show和Edit。(2)為視圖類捕獲右鍵

8、單擊的消息。(3)參考OnContextMenu。CMenumenu;menu.LoadMenu(…).【注意:】TrackPopupMenu函數(shù)的參數(shù)X,y是屏幕坐標,是相對于屏幕左上角來說的,而鼠標單擊時,鼠標的位置是相對于視圖左上角來講的。是不同的坐標系統(tǒng)。所以要把視圖坐標轉(zhuǎn)換為屏幕坐標。函數(shù)ClientToS

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。