国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

Visual C++中MFC消息分類的介紹

2020-02-24 14:37:55
字體:
來源:轉載
供稿:網友

  標準(窗口)消息:窗口消息一般與窗口內部運作有關,如創建窗口,繪制窗口,銷毀窗口,通常,消息是從系統發到窗口,或從窗口發到系統。發送函數SendMessage()或者PostMessage()。除WM_C++OMMAND之外,所有的以WM_開頭的消息。從CWnd派生的類,都可以接受到這類消息。注意:標準消息并不需要我們指定處理函數名稱,是默認的對應關系。

  宏名稱 對應消息 消息處理函數

  ON_WM_CHAR WM_CHAR OnChar

  ON_WM_CLOSE WM_CLOSE OnClose

  ON_WM_CREATE WM_CREATE OnCreate

  ON_WM_DESTROY WM_DESTROY OnDestroy

  ON_WM_LBUTTONDO WNWM_LBUTTONDOWN OnLButtonDown

  ON_WM_LBUTTONUP WM_LBUTTONUP OnLButtonUp

  ON_WM_MOUSEMOVE WM_MOUSEMOVE OnMouseMove

  ON_WM_PAINTWM_PAINT OnPaint

  命令消息:命令消息通常與處理用戶請求有關,當用戶單擊一個菜單或工具欄時,命令消息就產生了。并發送到能處理該消息的類或函數(如裝載文本,保存選項等)這類消息都以WM_COMMAND呈現。在MFC中,通過菜單標識(ID)來區分不同的命令消息;在SDK中,通過消息的wParam參數識別。從CCmdTarget派生的類,都可以接收到這類消息,其wParam 記錄著該消息來自哪一個菜單項目。

  ON_COMMAND(IDM_ABOUT, OnAbout)

  ON_COMMAND(IDM_FILENEW, OnFileNew)

  ON_COMMAND(IDM_FILEOPEN, OnFileOpen)

  ON_COMMAND(IDM_FILESAVE, OnFileSave)

  控件消息:由控件產生的消息,例如,按鈕的單擊,列表框的選擇等均產生此類消息,為的是向其父窗口通(通常是對話框)通知事件的發生。這類消息也是以WM_COMMAND形式呈現。從CCmdTarget派生的類都可以接收到這類消息。

  控件宏 消息處理函數

  Button ON_BN_CLICKED(,) memberFxn

  ComboBox ON_CBN_DBLCLK(,) memberFxn

  Edit ON_EN_SETFOCUS(,) memberFxn

  ListBox ON_LBN_DBLCLK(,) memberFxn

  CWnd是CCmdTarget的派生類,在MFC的單文檔程序中的CMenuApp和CMenuDoc都是屬于CCmdTarget的派生類而不包含CWnd類。

  MFC命令消息的路由:AfxWndProc(替換了窗口過程函數)->AfxCallWndProc->WindowProc->OnWnddMsg->(如果是命令消息則調用Oncommand;如果是通告消息則調用OnNotify)->OnCmdMsg

  標準消息和非標準消息的區分:標準消息:帶有控制后 后續操作;非標準消息:只是簡單提示。

  你可以在程序的許多類別之中設計「消息映像表格」(每一個類別只能擁有一個消息映像表格,但也可以沒有),接收并處理消息。只要是 CWnd 衍生類別,就可以攔下任何 Windows 消息。與窗口無關的MFC 類別(例如 CDocument 和 CWinApp)如果也想處理消息,必須衍生自 CCmdTarget,并且只可能收到 WM_COMMAND 命令消息。

  以上就是Visual C++中MFC消息分類的介紹,希望小編整理的相關知識和資料都對你們有所幫助,更多內容請繼續關注武林技術頻道網站!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定远县| 汝阳县| 沙湾县| 攀枝花市| 青浦区| 河池市| 和顺县| 蓝山县| 宜君县| 鲁甸县| 杭锦旗| 台安县| 准格尔旗| 凤城市| 兰州市| 香格里拉县| 北海市| 民县| 汾西县| 米脂县| 进贤县| 抚顺县| 临安市| 梁平县| 民和| 习水县| 定远县| 吴江市| 宁明县| 南部县| 福州市| 宁津县| 白城市| 乌拉特后旗| 来凤县| 汾阳市| 陈巴尔虎旗| 滨海县| 黄梅县| 黎平县| 盐亭县|