1. 程式人生 > >MFC中自定義訊息過程

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