看板 C_and_CPP 關於我們 聯絡資訊
我上禮拜測試了一下,使用推文大大的方法 依然無法將值傳過去,我將CParentDlg *mdlg=new CParentDlg(); 移到.h內的public宣告也不行,我也特別注意有沒有將#include "stdafx.h"放到最上面 我的做法是在父視窗某個按鈕中Create新視窗 void CMainDlg::OnBnClickedBtnAsk() { mdlg->Create(); mdlg->ShowWindow(SW_SHOW); OnName(); OnYear(); OnPhone(); } 在傳值的部分 void CMainDlg::OnReceive() { if(Tital=="Name") { string m_name=Mark; mdlg->m_pname=m_name; //m_pname是子視窗接值得字串名稱 }else if(Tital=="Year") { int m_year=2012; mdlg->m_pyear=m_year; //這種方式會發生錯誤,無法將值傳過去 }else if(Title=="Phone") { int m_phone=0912345678; mdlg->GetDlgItem(IDC_PHNUM)->SetWindowText(mdlg->m_phnum=m_phone); //這樣就有傳過去了 } } 但是還是不知道為什麼用mdlg->m_pname=m_name;無法將值傳過去 ※ 引述《don750421 (1+1≠2)》之銘言: : 我新增一個專案(對話盒),假設為CMainDlg,我另外新增了一個對話盒CParentDlg : 那如果CMainDlg要傳值給CParentDlg該怎麼傳呢? : 如果子傳父視窗可以用 : ((CMainDlg*)m_parent)->m_ptext=m_mtext; : 網路上找到的範例幾乎都是子傳給父視窗數值,沒有看到父傳給子 : 所以想請問一下,如果父傳子的話該怎麼寫呢? : 麻煩各位指教^^ : 因為我是利用某一個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: 118.171.193.18
leiyan:每到這時候我就會想:friend靠你了! 04/17 22:42
kosno1:在我看來,只有第三個判斷式的內容,會把資料顯示在UI上。 04/18 10:36