MFC自定義訊息ON MESSAGE 的使用

2021-10-10 19:57:49 字數 1186 閱讀 4248

1、mfc的自定義訊息自定義訊息的響應和資源訊息的響應有很多類似之處;資源訊息的響應是以資源的id號作為標識的,而自定義的訊息需要自己宣告訊息id;

1)定義訊息:

#define wm_mymsg wm_user+200

2)在類宣告中宣告訊息對映:

declare_message_map()

3)在類宣告中定義訊息處理函式:

afx_msg lresult mymsghandler(wparam,lparam);

4)在.cpp中實現訊息對映:

begin_message_map()

on_message

(wm_mymsg,onmymsghandler)

end_message_map

()

5)實現訊息處理函式

lresult cmainframe::

onmymsghandler

(wparam w,lparam l)

2.使用

1)如果該自定義訊息所在的類是有cwnd派生出來的,且在本類中呼叫,那麼我們可以呼叫cwnd::sendmessage()函式,具體定義為:

lresult sendmessage

( uint message, wparam wparam =

0, lparam lparam =0)

;

此時我們只需要在引發訊息的地方新增如下**:

sendmessge

(wm_mymsg,0,

0);

如果我們想在不同的情況下傳送使用者訊息,我們只需要將sendmessage的後兩個引數wparam,lparam加以標識即可;在訊息處理函式,寫乙個if條件語句(或switch語句)就可以了;將不同情況下的使用者訊息區分開;

2)如果不在本類中響應自定義訊息;那麼我們只能用win32 的api函式;例如,當自定義訊息在cmainframe中,而觸發訊息的地方不在cmainframe類中,那麼我們可以用如下語句:

::

sendmessge(::

afxgetmainwnd()

->m_hwnd,wm_mymsg,0,

0);

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。...