MFC 自定義訊息的一般過程

2021-07-04 02:28:01 字數 1078 閱讀 2501

1).在相關類的標頭檔案頂部新增如下所示的字串(以cmydlg類為例):

在cmydlg.h中新增#define wm_my_message (wm_user+100)  注意:在原始檔(。cpp)也可以的。

1                    2

其中1位置處的訊息名可以自定,位置2處是確保訊息在程式中唯一性,所以用(wm_user+數值)的形式來表示,數值不可為負.

2).在訊息定義完成後,需要轉到相應類的源程式檔案cmydlg.cpp中,在如下所示的固定結構間新增訊息與函式的對映.

begin_message_map(ctestdisockdlg, cdialog)

//}afx_msg_map

end_message_map()

例如要新增上面已經定義好的訊息,新增後的結構如下:

begin_message_map(ctestdisockdlg, cdialog)

//}afx_msg_map

end_message_map()

其中3所示的行即是新增的內容.要注意自定義訊息是以on_message()的形式對映,第乙個引數是上面已經定義好的訊息名,第二個引數是該訊息的對映函式,訊息是函式的觸發條件.無訊息到達時該函式永遠不被執行.

3).上面的完成後,需要轉到cmydlg.h檔案中,也就是定義類的檔案中,在如下的結構中申明剛才對映好的函式.

//}afx_msg

declare_message_map()   //找位置的時候,以該行出現的地方為準.

新增函式後的結構如下,與普通的申明稍有區別.

//}afx_msg

declare_message_map()   //找位置的時候,以該行出現的地方為準,新增函式後的結構如下,與普通的申明稍有區別.

位置4對應的行是加上的函式申明,如果有引數就寫帶參的形式,其中afx_msg 頭是所有與訊息有關的函式必須加的標識.

最後一步就是到原始檔cmydlg.cpp中寫函式的實現部分,也就是具體的程式設計.

訊息的觸發是靠sendmessage()或postmessage()函式完成的,它們的第乙個引數就是指定把訊息發往那個視窗,傳送成功後,對映函式就會被呼叫執行。

MFC自定義訊息

訊息機制是windows的典型執行機制,在mfc中有很多的訊息如wm btn 等。但是在有些情況下我們需要自定義一些訊息去做一些我們需要的功能,mfc的嚮導不能幫助我們做到這一點,我們可以通過新增相應的 去完成這個功能。新增自定義訊息操作如下 1.建立mfc工程,如基於對話方塊的應用程式,test。...

MFC自定義訊息

訊息機制是windows的典型執行機制,在mfc中有很多的訊息如wm btn 等。但是在有些情況下我們需要自定義一些訊息去做一些我們需要的功能,mfc的嚮導不能幫助我們做到這一點,我們可以通過新增相應的 去完成這個功能。新增自定義訊息操作如下 1.建立mfc工程,如基於對話方塊的應用程式,test。...

MFC自定義訊息

訊息機制是windows的典型執行機制,在mfc中有很多的訊息如wm btn 等。但是在有些情況下我們需要自定義一些訊息去做一些我們需要的功能,mfc的嚮導不能幫助我們做到這一點,我們可以通過新增相應的 去完成這個功能。新增自定義訊息操作如下 1.建立mfc工程,如基於對話方塊的應用程式,test。...