本案例是根據兩個dialog 相互通訊總結而來,在兩個dialog都設定好後,分為四步實現訊息傳遞:
專案名稱為:mfcmiltiwin
主dialog:cmfcmiltiwindlg
從dialog:cdialogsub
1:定義訊息id
在專案的標頭檔案中:mfcmiltiwin.h
2:定義訊息處理函式,為了能夠將相互通訊還需定義從類指標:dlg//巨集定義兩個訊息id---區分使用者自定義訊息和系統訊息---------------------------------
#define wm_main_msg wm_user+0x00001
#define wm_sub_msg wm_user+0x00002
//巨集定義兩個訊息id------------------------------------
cmfcmiltiwindlg.h
cdialogsub.hprotected:
//定義訊息處理函式-------
afx_msg lresult onmainmsg(wparam wparam, lparam lparam);
private:
cdialogsub* dlg;
3:實現訊息處理函式protected:
//定義訊息處理函式-------
lresult onsubmsg(wparam wparam, lparam lparam);
cmfcmiltiwindlg.cpp
cdialogsub.cppafx_msg lresult cmfcmiltiwindlg::onmainmsg(wparam wparam, lparam lparam)
4:建立: 訊息<—–>訊息函式的對映afx_msg lresult cdialogsub::onsubmsg(wparam wparam, lparam lparam)
在:begin_message_map end_message_map() 中
cmfcmiltiwindlg.cpp
cdialogsub.cppbegin_message_map(cdialogsub, cdialogex)
//建立 訊息,訊息處理函式 對映表_____
on_message(wm_main_msg, &cmfcmiltiwindlg::onmainmsg)
//建立訊息對映表_____
//建立訊息對映表_____
end_message_map()
begin_message_map(cdialogsub, cdialogex)
//建立訊息對映表_____
on_message(wm_sub_msg, cdialogsub::onsubmsg)
//建立訊息對映表_____
//建立訊息對映表_____
end_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...
VC中自定義訊息實現
在vc專案開發中,很多時候需要自己定義訊息進行事務處理。上次也剛好有同學問及,這裡綜合網路上的一些資料,集中起來供參考。u 自定義訊息 我們可以通過一下兩種方法來自定義乙個訊息 1 方法一 step 1 使用wm taskbarcreated來確定乙個沒有被windows本身搶占 的訊息值,在想新增...
VC 中自定義訊息實現
在vc專案開發中,很多時候需要自己定義訊息進行事務處理。上次也剛好有同學問及,這裡綜合網路上的一些資料,集中起來供參考。自定義訊息 我們可以通過一下兩種方法來自定義乙個訊息 1 方法一 step 1 使用wm taskbarcreated來確定乙個沒有被windows本身搶占 的訊息值,在想新增訊息...