MFC中自定義訊息過程
這幾天接觸一個MFC自定義訊息,但是之前沒用過,犯了一個低階錯誤,粘貼出來供大家參考。
下圖是Windows訊息圖示:
有使用者自定義訊息的一些範圍。以一個具體的例子介紹使用方法:
第一步:本人定義一個訊息
#define WM_ShowTask WM_USER+1 // WM_ShowTask是自己定義的訊息, ShowTask是自己定義的訊息名稱,WM_USER表示自己定義訊息,上圖有解釋,有範圍的
第二步:我用的是MFC dialog程式,我在XXdlg.cpp裡面定義一個自己需要的訊息處理函式
LRESULT CxxDlg::OnShowTask(WPARAM wParam,LPARAM lParam) //函式型別根據自己需要自己定義,WPARAM ,LPARAM 是訊息響應機制,很靈活的兩個變數
{
}
第三步:在.cpp裡面定義了處理函式,就需要在xxdlg.h裡面對函式進行宣告,
afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam); //函式型別自定義
第四步:將訊息對映到處理函式,簡單來說就是將訊息和處理函式繫結
BEGIN_MESSAGE_MAP(CxxDlg, CDialog)
//{{AFX_MSG_MAP(CShutdownDlg)
ON_MESSAGE(WM_ShowTask,OnShowTask)
END_MESSAGE_MAP()
注意這裡的位置,本人就在載在這上面,一般的Dialog程式,有兩個BEGIN_MESSAGE_MAP() .......END_MESSAGE_MAP,一個是自己的CxxDlg,另一個是系統裡的CAboutDlg.我們要在自己需要的Cxxdlg的BEGIN_MESSAGE_MAP()處定義,所以各位大俠看仔細了,否則就會出現錯誤提示:“****,未定義”;“****,型別不能轉換”之類的錯誤,所以看清楚位置很重要。
好了介紹到此結束,有問題請留言,有錯誤也請留言,畢竟本人也是出於學習的過程,有錯誤歡迎指正。
---------------------
作者:feilong911hao
來源:CSDN
原文:https://blog.csdn.net/feilong911hao/article/details/27493157