国产探花免费观看_亚洲丰满少妇自慰呻吟_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消息分類的介紹,希望小編整理的相關知識和資料都對你們有所幫助,更多內容請繼續關注武林技術頻道網站!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴海县| 东明县| 临夏市| 文山县| 台南市| 榕江县| 类乌齐县| 宁阳县| 扎鲁特旗| 洪湖市| 扎鲁特旗| 宣恩县| 江川县| 峨山| 西乌珠穆沁旗| 峨山| 沁源县| 阳曲县| 大城县| 建平县| 永顺县| 平度市| 滁州市| 奉化市| 深水埗区| 景谷| 蚌埠市| 香河县| 麻江县| 库伦旗| 普兰县| 潜江市| 民勤县| 怀仁县| 青阳县| 绵竹市| 安顺市| 诏安县| 黔西| 丁青县| 茂名市|