網上講述的都是基於框架類得訊息的傳遞,本文所講述的是兩個對話方塊之間自定義訊息的傳遞。
首先完成需要接受訊息的類中訊息的自定義:
mfc 自定義訊息四步曲
1. 定義全域性變數或巨集
#define wm_mymessage (wm_user + n)
n為數字到少大於
100或者用 const uint wm_mymessage = wm_user + n
他們都是全域性變數標頭檔案所以都可以.
2. 在所在類的*.h檔案增加訊息函式宣告.
protected:
//}afx_msg
declare_message_map()
};
3.在所在類的實現檔案*.cpp檔案中增加訊息對映和實現訊息處理函式
begin_message_map(cchildview,cwnd )
//}afx_msg_map
end_message_map()
也就是說wm_mymessage訊息對應onmymessage函式
lresult
類名::onmymessage(wparam wparam, lparam lparam)
其次是傳送訊息,分類內和類外兩種情況。
假定對話方塊b類中定義了訊息wm_mymessage,在b類得其他函式中可直接使用
4.sendmessage(wm_mymessage,wparam,lparam);
如果是對話方塊a類向對話方塊b類傳送資訊,則相對比較麻煩。我們假定a為主對話方塊,則需要在a類加乙個成員變數b * pb;在a類得初始化函式中新增如下**pb = new b;pb->creat(
對話方塊b的idd);這樣便完成了對話方塊b的建立(記住一定是非模態的,如果是模態的對話方塊是不能傳遞訊息的),然後在a類的函式中就可以通過下面的語句來傳遞訊息了
4.::sendmessage(pb->m_hwnd,wm_mymessage,0,0);
這樣就可以隨時給對話方塊b傳送訊息,對b的控制項進行控制了。
MFC對話方塊訊息傳遞順序
mfc應用程式中處理訊息的順序,建立視窗的過程關閉視窗的順序 非模態視窗 開啟模式對話方塊的函式呼叫順序.2007 12 06 19 23mfc應用程式中處理訊息的順序 1.afxwndproc 該函式負責接收訊息,找到訊息所屬的cwnd物件,然後呼叫afxcallwndproc 2.afxcall...
MFC對話方塊訊息傳遞順序
mfc應用程式中處理訊息的順序,建立視窗的過程關閉視窗的順序 非模態視窗 開啟模式對話方塊的函式呼叫順序.2007 12 06 19 23mfc應用程式中處理訊息的順序 1.afxwndproc 該函式負責接收訊息,找到訊息所屬的cwnd物件,然後呼叫afxcallwndproc 2.afxcall...
自定義對話方塊
public void normaldialog 對話方塊的 private dialoginte ce.onclicklistener mydialoglistener new dialoginte ce.onclicklistener alertdialog.builder對話方塊沒有類似fin...