免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VC++對話框間變量傳遞

提供兩種方案, 1 如果新建的對話框是主窗口的子窗體可以這樣.將這五個變量定義為Public的,然后在子對話框中this->GetParent()->mNumber; mNumber為其中一個變量. 2 在新建的對話框類中提供一個Public的函數(shù),在主程序中調(diào)用,將這五個變量值傳遞過去.

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

可以有兩種方法,假設你的主窗口對話框類為CMainWnd,其中一個變量為str,新建的對話框類為CNewWnd:
第一種:取父窗口指針
在CNewWnd類中這樣使用
/*當然要include   CMainWnd類的頭文件*/
CMainWnd* pwnd = (CMainWnd*)GetParent();
此時,pwnd就是CMainWnd的一個窗口類指針了,可以直接使用它的公共成員,如
pwnd->str
第二種:全局窗口指針
在CMainWnd的cpp文件里定義一個全局窗口指針如:CMainWnd* g_pWnd;
然后在CMainWnd的構(gòu)造函數(shù)里對它初始化:g_pWnd=this;
在CNewWnd類的cpp文件中聲明這個外部變量
extern CMainWnd* g_pWnd,
這樣,也可以直接使用CMainWnd類的公共成員,如:
g_pWnd->str

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

在對話框類里重載構(gòu)造函數(shù)
MyDlg(變量1,變量2,...變量5)
{}

這樣就OK了,很簡單吧

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我習慣使用火駒的方法。封裝性較好,個人感覺。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Dialog1的類名是CDialog1, 頭文件是dialog1.h。里有成員變量CString str1, str2; Dialog2的類名是CDialog2, 頭文件是dialog2.h。里有成員變量CString str11, str22; 要想將Dialog1里的變量傳遞給Dialog2里的變量,可以用這種方法:在類 CDialog1 的頭文件里,引入Dialog2的頭文件: #include "dialog2.h" 在類 CDialog1 的定義里聲明Dialog2的對象: CDialog2 m_Dialog2; 在類 CDialog1 的cpp文件里的初始化函數(shù)里(其實應該在你需要的時候進行如下操作),UpdateData(TRUE); str1.Format("xixi");str2.Format("haha");m_Dialog2.str11 = str1; m_Dialog2.str22 = str2;UpdateData(FALSE);這樣,就把值已經(jīng)傳給Dialog2了!要是想在Dialog2里使用str11,str22的時候,加上UpdateData(TRUE);

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

vc里面怎樣實現(xiàn)對話框之間傳遞變量的值(原)
對話框1 CDlg1 該對話框 有個編輯框 Ceidt m1_text;對話框2 CDlg2 該對話框類 有個成員變量 Cstring m2_text 還有一個按鈕Button2用于打開對話框1過程描述:打開對話框2,單擊按鈕Button2打開對話框1,給 m1_text賦值,關閉對話框1,將m1_text的值傳給m2_text.實現(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 星期三)
提到:

1.比較特殊情況下:
  比如:兩個對話框關系是:點擊對話框1的按鈕,然后會運行對話框2
  可以這樣:CXXXDialog2 dlg;
            dlg.xxx =  yyy; //yyy是對話框1的值,賦值給對話框2的xxx
2.兩個對話框完全沒有關聯(lián):
可以這樣:
    a)把數(shù)據(jù)保存在文件里面,讀寫(操作.ini也不錯)
    b)CWinApp類里面可以添加變量xxx;
      通過AfxGetApp()->xxx;來保存和讀取變量;  

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

想把在主窗口得到的一個值例如   dcount=100;在一個對話框打開時間去的這個值 問題點數(shù):50、回復次數(shù):19

1 樓softsprite(軟件精靈)回復于 2000-08-30 09:06:00 得分 0

如果需要傳遞的變量不多的話,在對話框類中建立相應的成員變量:  
  CMyDialog   myDialog(this);  
  myDialog.m_dcount   =   dcount;  
  if   (   myDialog.DoModal()   ==   IDOK   )  
  {  
      dcount   =   myDialog.m_dcount;  
  }  
   
  如果需要傳遞的變量比較多或比較復雜,可以專門建立一個結(jié)構(gòu)放這些變量,在對話框類中建立這個結(jié)構(gòu)類型的指針,用類似的方法傳遞指針即可。

2 樓luxes()回復于 2000-08-30 09:09:00 得分 10

把這個值定義為主窗口的public成員變量:m_dcount,  
  在dialog里:訪問:AfxGetMainWnd()->m_dcount

3 樓skyrain(skyrain)回復于 2000-08-30 09:10:00 得分 0

這兒的dcount   在哪兒定義?CMyDialog   myDialog(this);應該寫哪兒?  
   
 

4 樓Tiangz()回復于 2000-08-30 09:11:00 得分 0

在Dialog的.h文件中包含MainFrm.h,若dcount是一個public成員,則可以  
  GetMainFrame()->dcount,否則可以在MainFrame中定義一個函數(shù)專門得到該參數(shù),在  
  Dialog中調(diào)用即可

5 樓softsprite(軟件精靈)回復于 2000-08-30 09:25:00 得分 0

dcount是主窗口中的變量,是你自己提出來的呀!  
  CMyDialog   myDialog(this);這一整段代碼可以放在主窗口中你需要彈出對話框的地方。比如你需要按某個菜單項彈出這個對話框,可以在主窗口處理這個菜單項的函數(shù)中使用這段代碼。  
 

6 樓skyrain(skyrain)回復于 2000-08-30 10:41:00 得分 0

我在MainFrm.h中加入public變量dcount,在對話框的MyDialog.h中加入#include   "mainfrm.h"  
  可在用AfxGetMainWnd()->dcount時間編譯報CWnd沒有這個成員

7 樓magicwizard(巫師)回復于 2000-08-30 10:44:00 得分 0

softsprite在第一個回復里說得很詳細,仔細看看分析一下.  
  或者你把自己的問題說得更詳細一些.

8 樓skyrain(skyrain)回復于 2000-08-30 10:54:00 得分 0

我用MFC建立了一個單文檔程序data,自己添加了一個對話框類,叫mydialog  
  在dataView.cpp中我得到一個變量   int   dcount=100,當點擊一個按鈕時打開我的對話框,在對話框  
  中我想用dcount的值,我該怎么做

9 樓a2000(夜雨)回復于 2000-08-30 11:08:00 得分 0

在CMyApp中建一個變量dcount;然后在CMyDialog   中用AfxGetApp()->dcount.就行了.

10 樓skyrain(skyrain)回復于 2000-08-30 11:11:00 得分 0

CMyApp是自定義的類嗎

11 樓Holly()回復于 2000-08-30 11:18:00 得分 20

所有的AfxGetApp()或AfxGetMainWnd()的到的指針都需要強制轉(zhuǎn)換  
  ((CMyApp*)AfxGetApp())和((CMainFrame*)AfxGetMainWnd())

12 樓Holly()回復于 2000-08-30 11:23:00 得分 0

另外,盡量采用softsprite在第一貼的方法,直接取變量的方法使代碼的控制混亂,是不好的編碼風格,應當避免,養(yǎng)成習慣就不好了?

13 樓skyrain(skyrain)回復于 2000-08-30 11:28:00 得分 0

softsprite的方法我看不懂,m_count在哪定義的,  
  dcount   =   myDialog.m_dcount;什么意思,寫在哪兒(我是要取得dcount的值)  
 

14 樓softsprite(軟件精靈)回復于 2000-08-30 11:40:00 得分 20

在MyDialog.h中定義:int   m_dcount;  
  在MainFrm.h中定義:int   dcount;  
  第一貼中的代碼是在主窗口CMainFrame中的。  
  myDialog.m_dcount就是取得CMyDialog類的實例的成員變量m_dcount,然后這個變量可以和主窗口CMainFrame中的變量dcount互相交換值。  
  。。。。我的汗都下來了!  
 

15 樓xiaoyuer(我是一只蟲)回復于 2000-08-30 12:09:00 得分 0

只要取得窗口類的指針即可!

16 樓hnalbert(再戰(zhàn))回復于 2000-08-30 12:13:00 得分 0

You   can   do   just   as   what   softsprite   told   you.  
  There   is   no   need   of   pointer   to   CWnd.

17 樓iforever(iforever)回復于 2000-09-01 14:42:00 得分 0

聽HOLLY的

 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

用資源分別建立兩個對話框.兩對話框無任何聯(lián)系.
現(xiàn)在想將第1個對話框中EDIT編輯框中的數(shù)據(jù)傳遞給另一個對話框的EDIT編輯框中。
不知道如何解決。我是VC新手,希望高手能講解具體一點,謝謝.

一句話
GetDlgItem(EDIT2的ID)-> SetWindowText(GetDlgItem(EDIT1的ID)-> GetWindowText());

 

回復于:2006-05-26 10:17:51 方法一:在第二個對話框中調(diào)用第一個對話框
方法二:在App類中定義一個變量,在第一個對話框中把控件值傳給該變量,在第二個對話框中把該變量值傳給控件

 

#5樓 得分:0回復于:2006-05-26 11:37:21

在需要實現(xiàn)該功能的地方調(diào)用:
(例如在一個對話框1類里面,把對話框1上的IDC_EDIT1里的內(nèi)容傳到
對話框2的IDC_EDIT2里面):
CString   strText;
GetDlgItem(IDC_EDIT1)-> GetWindowText(strText);   //得到對話框1的IDC_EDIT1內(nèi)容
(FindWindow(NULL, "對話框2的標題 ")-> GetDlgItem(IDC_EDIT2))-> SetWindowText(strText);   //顯示對話框1的IDC_EDIT1內(nèi)容;
                  (FindWindow(NULL, "對話框2的標題 ")-> GetDlgItem(IDC_EDIT2))-> GetWindowText(strText);       //   得到顯示對話框2的IDC_EDIT2內(nèi)容(在strText里)

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DoDataExchange函數(shù)詳解
PyQt 界面控件常用積累
轉(zhuǎn)貼:MFC edit control 用法
artDialog 4.1.2
一個使用CSocket類的網(wǎng)絡通信實例
VC積累
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服