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