定義VC 訊息對映函式小結
訊息對映機制是Windows程式設計的核心內容。Windows 下的應用程式也都是通過訊息驅動的機制來進行工作的。雖然VC開發環境自帶了大量的系統訊息處理函式,但我們實際的程式開發過程中總還是避免不了要寫一些自定義的訊息處理函式以滿足所編寫的軟體功能的需要。那麼在VC中如何定義自己的訊息處理函式呢?其步驟如下:
1、在要定義訊息對映函式的類的首部通過巨集定義的方式定義一個使用者型別的訊息標識。定義方法如下:#define WM_USER1 WM_USER + 1 其中的WM_USER是系統定義好的使用者型別的訊息。只要以此為自定義訊息的起點加上一個偏移量在0~0x3FFF之間的值,就不會和系統定義的其它訊息發生衝突了。
2、在類上點選右鍵,然後在彈出的選單中選擇“新增成員函式”(Add member Function)。在彈出的新增函式對話方塊中的函式型別框中輸入函式的型別。如:afx_msg LRESULT 訊息處理函式一定要以afx_msg關鍵字開頭,表明是全域性函式。LRESULT是函式的型別。表明是系統回撥函式。也可以是其它的型別。如int,void 等等合法的資料型別。在函式名稱框中輸入函式名。如:MyFunction(WPARAM wParam, LPARAM lParam).這兩個引數是系統用於傳遞訊息的附加引數。W開頭的是十六位的資訊引數。L開頭的是三十二位的資訊引數。
3、開啟類的原始檔。找到“BEGIN MESSAGE MAP” 和 "END MESSAGE MAP"。在兩者之間宣告訊息與訊息處理函式。如:ON_MESSAGE(WM_USER1, MyFunction).ON_MESSAGE是定義使用者訊息對映函式的系統函式。訊息對映語句最好從 "//}}AFX_MSG_MAP”它的下一行開始寫起。因為它是系統維護自動生成程式碼的標記。如果寫在它的上面,有可能會被刪除。
4、在類的原始檔中找到剛定義的訊息函式,寫入實現程式碼。
5、在需要呼叫訊息對映函式的地方用SendMessage(WM_USER1);即可呼叫所定義的函式。WM_USER1 就是我們剛定義的訊息名稱。