Re: [問題] MFC視窗傳值問題..

看板C_and_CPP (C/C++)作者 (1+1≠2)時間14年前 (2012/04/06 22:59), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串3/3 (看更多)
感謝之前幾位前輩的回覆,但是我還是有些地方卡住不太懂@@ 拜了Google大神後發現,原來當父視窗開啟子視窗時 會將通道開啟,直到傳送dlg.DoModal才會關閉 所以,要傳給子視窗的值必須在開啟通道的期間送出去才可。 CDialMachDlg dlg(this); <--此時開啟通道 dlg.DoModal();<--關閉通道 如果不在通道開啟的這段期間將值傳到子視窗,那有其他辦法嗎? 因為我是利用某一個Driver寫一個類似通訊的程式.. 通訊的概念就是Host1問 Host2傳回資訊 Driver接收訊息是統一由函數OnReceive()處理 Driver傳送訊息則沒有嚴格定義.. 假設我目前設定三個傳送訊息OnName(),OnYear(),OnPhone(); 父視窗IDD_CMAIN 子視窗IDD_RESULT 我希望當我按下按鈕的同時,將這三個訊息傳送給對方,並且開啟子視窗 void CMainDlg::OnBnClickedBtnAsk() { OnName(); OnYear(); OnPhone(); } 但是接收的函式為同一個,我希望接收到訊息後,能將數值顯示在子視窗中 void CMainDlg::OnReceive() { if(Tital=="Name") { string m_name=Mark; }else if(Tital=="Year") { int m_year=2012; }else if(Title=="Phone") { int m_phone=0912345678; } } 請問一下,如果像這種情況,有什麼辦法可以將接收到的值傳到子視窗呢? 麻煩大家指點@@卡關卡兩天了.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.215.14

04/06 23:43, , 1F
先不說你對DoModal的奇怪理解 你的問題是希望子視窗開啟後
04/06 23:43, 1F

04/06 23:43, , 2F
程式能夠繼續接收driver送來的訊息 並且顯示在子視窗嗎?
04/06 23:43, 2F

04/06 23:50, , 3F
jh大,是的..
04/06 23:50, 3F

04/07 00:43, , 4F
讓子視窗能接收並處理driver送的訊息 或是用modaless dlg
04/07 00:43, 4F

04/07 00:47, , 5F
或是用多執行緒
04/07 00:47, 5F

04/07 00:51, , 6F
那父視窗要如何傳值呢? 有這方面的Samle可以參考嗎?
04/07 00:51, 6F

04/07 01:54, , 7F
PostMessage?
04/07 01:54, 7F

04/07 23:20, , 8F
http://www.u-file.net/f-pzq5686 應很像你要的吧
04/07 23:20, 8F

04/07 23:21, , 9F
用法:1. CreateSub, 2. 再按 CAL2, 再按CAL2. repeat cal2
04/07 23:21, 9F

04/07 23:24, , 10F
建議以後可以給UI,及圖解, 不然真的很難猜你想問什麼?
04/07 23:24, 10F

04/08 23:08, , 11F
了解,謝謝b大的Sample,一目了然..下次我會有圖示說明.
04/08 23:08, 11F
文章代碼(AID): #1FVmJUTs (C_and_CPP)
文章代碼(AID): #1FVmJUTs (C_and_CPP)