看板 C_and_CPP 關於我們 聯絡資訊
感謝之前幾位前輩的回覆,但是我還是有些地方卡住不太懂@@ 拜了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
jhchou:先不說你對DoModal的奇怪理解 你的問題是希望子視窗開啟後 04/06 23:43
jhchou:程式能夠繼續接收driver送來的訊息 並且顯示在子視窗嗎? 04/06 23:43
don750421:jh大,是的.. 04/06 23:50
jhchou:讓子視窗能接收並處理driver送的訊息 或是用modaless dlg 04/07 00:43
jhchou:或是用多執行緒 04/07 00:47
don750421:那父視窗要如何傳值呢? 有這方面的Samle可以參考嗎? 04/07 00:51
seoker:PostMessage? 04/07 01:54
bbearh:http://www.u-file.net/f-pzq5686 應很像你要的吧 04/07 23:20
bbearh:用法:1. CreateSub, 2. 再按 CAL2, 再按CAL2. repeat cal2 04/07 23:21
bbearh:建議以後可以給UI,及圖解, 不然真的很難猜你想問什麼? 04/07 23:24
don750421:了解,謝謝b大的Sample,一目了然..下次我會有圖示說明. 04/08 23:08