對話方塊間的訊息響應

2021-07-08 17:08:25 字數 1077 閱讀 7302

解決的問題:當子對話方塊中獲得一些值或者一些操作後,主對話方塊需要根據對應的值或操作進行改變,可利用訊息傳送的機制完成。

用到的函式:

1,findwindow函式功能:該函式獲得乙個頂層視窗的控制代碼,該視窗的類名和視窗名與給定的字串相匹配。這個函式不查詢子視窗。在查詢時不區分大小寫。

2,getsafehwnd()函式,用於獲取窗體的安全控制代碼(即hwnd),有了hwnd我們就可以方便的對hwnd指向的窗體進行所需的操作了。

3,sendmessage ()函式或postmessage()函式,postmessage 是發出去就返回 而sendmessage是發出去等到被執行了 再返回

步驟:

1,先在resource.h檔案新增如下**, 定乙個自己的訊息

#define wm_successlogin (wm_user+2015) //2015可自己修改填寫
2,在需要訊息響應的對話方塊的.h檔案中新增如下**:

afx_msg lresult onsuccesslogin(wparam wparam,lparam lparam);//注意寫的位置
3,在對應的.cpp檔案中新增如下**:

on_message(wm_successlogin,onsuccesslogin)

//同樣注意寫的位置

4,在對應的.cpp檔案中新增對應的響應函式的實現**:

lresult clogsafedlg::onsuccesslogin(wparam wparam, lparam lparam) 

{//具體的操作

5,在需要傳送該訊息的地方,寫入如下**:

cwnd*   pwnd = cwnd::findwindow(null, _t("安全區操作工具"));//第二個引數為對話方塊的標題

hwnd hwnd = pwnd -> getsafehwnd();

::sendmessage(hwnd,wm_successlogin,null,null);

對話方塊 訊息對話方塊

我們在使用windows系統的過程中經常會見到訊息對話方塊,提示我們有異常發生或提出詢問等。因為在軟體開發中經常用到訊息對話方塊,所以mfc提供了兩個函式可以直接生成指定風格的訊息對話方塊,而不需要我們在每次使用的時候都要去建立對話方塊資源和生成對話方塊類等。這兩個函式就是cwnd類的成員函式mes...

常用對話方塊 訊息對話方塊

使用windows系統的過程中經常會見到訊息對話方塊,提示我們有異常發生或提出詢問等。因為在軟體開發 中經常用到訊息對話方塊,所以mfc提供了兩個函式可以直接生成指定風格的訊息對話方塊,而不需要我們在每次使用的時候都要去建立對話方塊資源和生成對話方塊類等。這兩個函式就是cwnd類的成員函式messa...

QMessageBox 訊息對話方塊

提示型 cpp view plain copy qmessagebox information null,title content qmessagebox yes,qmessagebox yes 錯誤型 cpp view plain copy qmessagebox critical null,c...