vc里面怎样实现对话框之间传递变量的值

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文件里的初始化函数里(其实应该在你需要的时候进行如下操作),
UpdateData(TRUE);
str1.Format("xixi");
str2.Format("haha");
m_Dialog2.str11 = str1;
m_Dialog2.str22 = str2;
UpdateData(FALSE);
这样,就把值已经传给Dialog2了!
要是想在Dialog2里使用str11,str22的时候,加上UpdateData(TRUE);


Eg: 如将登录对话框中用户名编辑框中的值(ID号:IDC_EDIT_USERNAME,变量名:m_username),传给主窗体,在主窗体状态栏下显示,且来m_user变量来保存。则方法如下:

在登录对话框头文件件中声明:主窗体头文件,并声明对象如:
#include "DebugDlg.h"

CDebugDlg dlg_confirm;

然后在登录对话框窗体中需要调用的地方,写入以下代码:

  UpdateData(TRUE);

  GetDlgItemText(IDC_EDIT_USERNAME,m_username);

  //MessageBox(m_username,"1");

   dlg_confirm.m_user=m_username;
  // MessageBox(dlg_confirm.m_user,"2");
 
  UpdateData(FALSE);

  dlg_confirm.DoModal();

 

然后,在主窗体中,直接使用m_user变量即可,此时主窗体中m_user变量保存的就是登录对话框中m_username中的值。

posted @   狂师  阅读(2015)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示