|
提供兩種方案, 1 如果新建的對(duì)話框是主窗口的子窗體可以這樣.將這五個(gè)變量定義為Public的,然后在子對(duì)話框中this->GetParent()->mNumber; mNumber為其中一個(gè)變量. 2 在新建的對(duì)話框類中提供一個(gè)Public的函數(shù),在主程序中調(diào)用,將這五個(gè)變量值傳遞過去. 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 可以有兩種方法,假設(shè)你的主窗口對(duì)話框類為CMainWnd,其中一個(gè)變量為str,新建的對(duì)話框類為CNewWnd: 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 在對(duì)話框類里重載構(gòu)造函數(shù) 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 我習(xí)慣使用火駒的方法。封裝性較好,個(gè)人感覺。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 Dialog1的類名是CDialog1, 頭文件是dialog1.h。里有成員變量CString str1, str2; Dialog2的類名是CDialog2, 頭文件是dialog2.h。里有成員變量CString str11, str22; 要想將Dialog1里的變量傳遞給Dialog2里的變量,可以用這種方法:在類 CDialog1 的頭文件里,引入Dialog2的頭文件: #include "dialog2.h" 在類 CDialog1 的定義里聲明Dialog2的對(duì)象: CDialog2 m_Dialog2; 在類 CDialog1 的cpp文件里的初始化函數(shù)里(其實(shí)應(yīng)該在你需要的時(shí)候進(jìn)行如下操作),UpdateData(TRUE); str1.Format("xixi");str2.Format("haha");m_Dialog2.str11 = str1; m_Dialog2.str22 = str2;UpdateData(FALSE);這樣,就把值已經(jīng)傳給Dialog2了!要是想在Dialog2里使用str11,str22的時(shí)候,加上UpdateData(TRUE); 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 vc里面怎樣實(shí)現(xiàn)對(duì)話框之間傳遞變量的值(原)對(duì)話框1 CDlg1 該對(duì)話框 有個(gè)編輯框 Ceidt m1_text;對(duì)話框2 CDlg2 該對(duì)話框類 有個(gè)成員變量 Cstring m2_text 還有一個(gè)按鈕Button2用于打開對(duì)話框1過程描述:打開對(duì)話框2,單擊按鈕Button2打開對(duì)話框1,給 m1_text賦值,關(guān)閉對(duì)話框1,將m1_text的值傳給m2_text.實(shí)現(xiàn):Dlg2.cpp CString m2_text; CDlg1 m_logindlg; if(m_logindlg.DoModal()==ID_OK) { m2_text=m_logindlg.m1_text; } 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 crazyboy (ppp)于2005年05月25日02:26:37 星期三) 想把在主窗口得到的一個(gè)值例如 dcount=100;在一個(gè)對(duì)話框打開時(shí)間去的這個(gè)值 問題點(diǎn)數(shù):50、回復(fù)次數(shù):19 1 樓softsprite(軟件精靈)回復(fù)于 2000-08-30 09:06:00 得分 0 如果需要傳遞的變量不多的話,在對(duì)話框類中建立相應(yīng)的成員變量: 2 樓luxes()回復(fù)于 2000-08-30 09:09:00 得分 10 把這個(gè)值定義為主窗口的public成員變量:m_dcount, 3 樓skyrain(skyrain)回復(fù)于 2000-08-30 09:10:00 得分 0 這兒的dcount 在哪兒定義?CMyDialog myDialog(this);應(yīng)該寫哪兒? 4 樓Tiangz()回復(fù)于 2000-08-30 09:11:00 得分 0 在Dialog的.h文件中包含MainFrm.h,若dcount是一個(gè)public成員,則可以 5 樓softsprite(軟件精靈)回復(fù)于 2000-08-30 09:25:00 得分 0 dcount是主窗口中的變量,是你自己提出來的呀! 6 樓skyrain(skyrain)回復(fù)于 2000-08-30 10:41:00 得分 0 我在MainFrm.h中加入public變量dcount,在對(duì)話框的MyDialog.h中加入#include "mainfrm.h" 7 樓magicwizard(巫師)回復(fù)于 2000-08-30 10:44:00 得分 0 softsprite在第一個(gè)回復(fù)里說得很詳細(xì),仔細(xì)看看分析一下. 8 樓skyrain(skyrain)回復(fù)于 2000-08-30 10:54:00 得分 0 我用MFC建立了一個(gè)單文檔程序data,自己添加了一個(gè)對(duì)話框類,叫mydialog 9 樓a2000(夜雨)回復(fù)于 2000-08-30 11:08:00 得分 0 在CMyApp中建一個(gè)變量dcount;然后在CMyDialog 中用AfxGetApp()->dcount.就行了. 10 樓skyrain(skyrain)回復(fù)于 2000-08-30 11:11:00 得分 0 CMyApp是自定義的類嗎 11 樓Holly()回復(fù)于 2000-08-30 11:18:00 得分 20 所有的AfxGetApp()或AfxGetMainWnd()的到的指針都需要強(qiáng)制轉(zhuǎn)換 12 樓Holly()回復(fù)于 2000-08-30 11:23:00 得分 0 另外,盡量采用softsprite在第一貼的方法,直接取變量的方法使代碼的控制混亂,是不好的編碼風(fēng)格,應(yīng)當(dāng)避免,養(yǎng)成習(xí)慣就不好了? 13 樓skyrain(skyrain)回復(fù)于 2000-08-30 11:28:00 得分 0 softsprite的方法我看不懂,m_count在哪定義的, 14 樓softsprite(軟件精靈)回復(fù)于 2000-08-30 11:40:00 得分 20 在MyDialog.h中定義:int m_dcount; 15 樓xiaoyuer(我是一只蟲)回復(fù)于 2000-08-30 12:09:00 得分 0 只要取得窗口類的指針即可! 16 樓hnalbert(再戰(zhàn))回復(fù)于 2000-08-30 12:13:00 得分 0 You can do just as what softsprite told you. 17 樓iforever(iforever)回復(fù)于 2000-09-01 14:42:00 得分 0 聽HOLLY的
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 用資源分別建立兩個(gè)對(duì)話框.兩對(duì)話框無任何聯(lián)系. 一句話
回復(fù)于:2006-05-26 10:17:51 方法一:在第二個(gè)對(duì)話框中調(diào)用第一個(gè)對(duì)話框 #5樓 得分:0回復(fù)于:2006-05-26 11:37:21 在需要實(shí)現(xiàn)該功能的地方調(diào)用: |
|
|