• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何在两个对话框中间传递参数?

xiaobinliu 2001-07-16 03:54:09
我程序中的一个对话框中,用DoModel打开一个对话框,在这里得到一个值,想在按下
OK按钮退出这个对话框回到原来那个对话框时候把这个值传回去,如何做呀?
...全文
180 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
landy_zl 2001-07-17
难道还不行
回复
xiaobinliu 2001-07-16
我又加了分
回复
landy_zl 2001-07-16
方法如下:
CFatherDlg
{
CSonDlg* pDlg;
}
调用时
pDlg = new CSonDlg;
if(pDlg->Domodal()==idok)
then......;
重载ONOK();
{
m_arg=dlg.m_inputparam;
}
别忘记给分,快点
回复
wmouse 2001-07-16
全局变量只要在工程(例如名叫Try)的头文件Try.h中用extern来声明,在Try.cpp中赋初值,以后便可直接使用,无需#include.
回复
gameboy999 2001-07-16
就把要传的那个变量放在dialog2里的public里
然后在关闭前赋值

之后就可以在domodal之后访问该变量了。
回复
seedundersnow 2001-07-16

你在两个话框中同时include,就会重复定义,只需要include一遍,其他需要这个变量的地方,用extern来说明

回复
xiaobinliu 2001-07-16
我还想把全局变量的方法试过
回复
xiaobinliu 2001-07-16
另外:leizhengdeng的方法我已经试验通过了,谢谢
回复
xiaobinliu 2001-07-16
我用了extern 后,出错提示信息还是一样的
回复
cuick2000 2001-07-16
告诉你个笨办法,用extern.呵呵
回复
cuick2000 2001-07-16
重复定义了
回复
xiaobinliu 2001-07-16
我写了一个全局变量
CString User_Name="";
放在一个global.h文件中
然后分别在两个对话框中include
为何出现这样的错误,如何解决?
DlgLogin.obj : error LNK2005: "class CString User_Name" (?User_Name@@3VCString@@A) already defined in emailsenderv2Dlg.obj
回复
leizhengdeng 2001-07-16
假设在CDlg2 中输入数据传到CDlg1中,那么:
在CDlg1中,写成如下代码:
//inputparam是CDlg2中的与CEdit关联的变量,用CLASSWIZARD关联
//传到CDlg1中的变量为m_arg
CDlg2 dlg;
if(dlg.DoModel()==IDOK)
{
m_arg=dlg.m_inputparam;
}
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-16 03:54
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……