MFC訊息對映與處理

2021-05-24 23:50:16 字數 963 閱讀 7840

declare_message_map()//宣告訊息對映表

}; //訊息對映表

begin_message_map(cmyframewnd,cframewnd)

on_wm_paint()//響應wm_paint訊息

end_message_map()

訊息響應函式[afx_msg void onpaint();]:即處理訊息的函式。

afx_msg只是將函式標記為訊息響應函式,你把它去掉程式也可以正常

執行,只不過是習慣的標記罷了!

mfc程式中訊息的種類:

(a)視窗訊息(window message):

這種訊息一般與視窗的內部運作有關,如建立視窗、繪製視窗和銷毀視窗等。

通常,訊息是從系統傳送到視窗,或從視窗傳送到視窗。形式通常為ww_***

(不包括wm_command)如:

wm_create,告訴視窗初始化自己。

wm_paint,告訴視窗繪製自己。

wm_mousemove,告訴視窗滑鼠移經它。

(b)由控制項和其它子視窗傳送給父視窗的wm_command訊息:

這些訊息中包括en_change通知碼,例如當使用者在編輯框中鍵如文字或進行修改時,

就會向系統傳送乙個帶en_change通知碼的wm_command訊息。

(c)來自使用者介面物件的wm_command訊息:

包括由選單、工具欄按鈕和快捷鍵這些使用者介面物件傳送的訊息。

說了這麼多是不是有些亂?我們需要記住的是訊息發生時,通過訊息對映表

找到相應的訊息響應函式對訊息進行處理!記住這三個巨集:

declare_message_map()//宣告訊息對映表

//訊息對映表

begin_message_map(cmyframewnd,cframewnd)

end_message_map()

MFC訊息對映與處理

今天我們主要了解一下mfc程式的訊息對映 mfc程式中訊息的種類 a 視窗訊息 window message 這種訊息一般與視窗的內部運作有關,如建立視窗 繪製視窗和銷毀視窗等。通常,訊息是從系統傳送到視窗,或從視窗傳送到視窗。形式通常為ww 不包括ww command 如 wm create,告訴...

MFC訊息對映

run這個函式來建立和處理訊息迴圈 bool afxapi afxinternalpumpmessage return true 顯而易見,mfc中處理訊息也是利用了win32下的訊息處理 那麼還是這樣的結構 typedef struct tagmsg msg 有了這個概念之後我們知道,mfc通過訊...

MFC訊息對映與命令傳遞

declare message map巨集 在 mfc 幾乎每個標頭檔案下 類的最後一行宣告 都會有這麼幾行 生成的訊息對映函式 protected declare message map 我們看一看 declare message map到底為何物,檢視 declare message map原始...