最近做專案,遇到了在多對話方塊情況之下,子對話方塊之間能夠互相傳送訊息的情況。
由於sendmessage()函式第乙個引數是目的地的控制代碼,所以只要能在子對話方塊1中得到子對話方塊2的控制代碼即可。
網上有資料說可以用findwindow函式,進行子對話方塊的控制代碼查詢,但弄了半天,發現一直無法得到想要的外部其他子對話方塊的控制代碼
最後得到的解決方法是子對話方塊將操作需求發回給父對話方塊,然後由於父對話方塊中儲存有子對話方塊的物件或物件指標,即可以方便的在父對話方塊中向子對話方塊傳送訊息。
具體操作如下:
子對話方塊向父對話方塊傳送訊息
hwnd hwnd = ::getparent(m_hwnd);
::sendmessage(hwnd,msg,wparam,lparam);
這樣就將訊息傳送到了父對話方塊中,在父對話方塊建立訊息的相應函式,然後通過不同的訊息型別,向不同的子對話方塊傳送訊息。
當然這裡也可以有兩種方法,其一可以使用getsafehwnd()函式獲得子對話方塊的控制代碼,這樣就可以使用::sendmessage()函式來根據不同視窗的控制代碼傳送訊息了
更簡單的是,直接用父對話方塊中儲存的子對話方塊的物件或物件指標來直接呼叫sendmessage()函式進行傳送訊息,這樣訊息直接傳送到對應的子對話方塊中了
當然如果不向子對話方塊傳送訊息也可以,在父對話方塊中留函式介面,在子對話方塊中直接通過父對話方塊的指標,然後呼叫父對話方塊的介面函式,進行向其他子對話方塊傳送訊息的操作
如果有人懂得如何在子對話方塊之間直接傳送訊息,那希望能告知,讓我學習一下。
mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式
遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...
對話方塊之間傳送資料
在 oninitdialog 中處理傳入引數,lparam 就是傳入的引數 通過 dialogboxparam 來傳入引數,在對話方塊中的 oninitdialog 的 lparam lparam 來取引數。long 型別,指標就是 long 了。傳遞字串 傳送 接受 傳遞結構體 傳送 接收 由於傳...
VS2010 MFC(對話方塊 訊息對話方塊)
前面幾節講了屬性頁對話方塊,我們可以根據所講內容方便的建立自己的屬性頁對話方塊。本節講解windows系統中最常用最簡單的一類對話方塊 訊息對話方塊。我們在使用windows系統的過程中經常會見到訊息對話方塊,提示我們有異常發生或提出詢問等。因為在軟體開發中經常用到訊息對話方塊,所以mfc提供了兩個...