自定義訊息ON MESSAGE

2021-08-22 02:23:46 字數 1325 閱讀 3919

mfc的自定義訊息(使用者訊息)的定義與使用

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

一.           定義:

第一步要宣告訊息:

#definewm_mymsgwm_user+200

第二步要在類宣告中宣告訊息對映:

declare_message_map()

第三步要在類宣告中定義訊息處理函式:

afx_msg lresult mymsghandler(wparam,lparam);

在.cpp中做的工作:

第四步要實現訊息對映:

begin_message_map()

on_message(wm_mymsg,onmymsghandler)

end_message_map()

第五步要實現訊息處理函式(當然可以不實現):

lresult cmainframe::onmymsghandler(wparam w,lparam l)

afxmessagebox("hello,world!");

return 0;

二.           使用

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自定義訊息ON MESSAGE 的使用

1 mfc的自定義訊息自定義訊息的響應和資源訊息的響應有很多類似之處 資源訊息的響應是以資源的id號作為標識的,而自定義的訊息需要自己宣告訊息id 1 定義訊息 define wm mymsg wm user 200 2 在類宣告中宣告訊息對映 declare message map 3 在類宣告中...

自定義訊息

自定義訊息的響應和資源訊息的響應有很多類似之處 資源訊息的響應是以資源的id號作為標識的 自定義的訊息要自己宣告訊息id。一 定義 第一步要宣告訊息 definewm mymsgwm user 200 第二步要在類宣告中宣告訊息對映 declare message map 第三步要在類宣告中定義訊息...

VC自定義訊息

示例 主對話方塊a edit控制項 副對話方塊b edit控制項 將b中edit內容在其銷毀後,顯示在a中edit中 1 自定義訊息 define wm mymsg wm user 100 2 b cpp afxgetmainwnd sendmessage wm mymsg,wparam 0,lpa...