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原始...