| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1890 人关注过本帖
标题:[求助]在对话框之间传递数据的问题
只看楼主 加入收藏
osamaleiyu
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-22
收藏
 问题点数:0 回复次数:5 
[求助]在对话框之间传递数据的问题
我想在对话框之间传递窗体EDIT控件输入的数据应该怎么做了?
我定义了一个 extern CString g_sopin;
void CDlgpin::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
g_sopin = m_sopin;
CDialog::OnOK();
}
想这样实现,但是编译提示错误:Dlgpin.obj : error LNK2001: unresolved external symbol "class CString g_sopin" (?g_sopin@@3VCString@@A)
Debug/Set.exe : fatal error LNK1120: 1 unresolved externals
这是什么错误了?

另外还有一个问题:
生成一个模态对话框,但是编译的时候提示:
C:\Documents and Settings\Administrator\桌面\新建文件夹\cnca_pm\set\Dlgpin.h(21) : error C2065: 'IDD_DLGPIN' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\新建文件夹\cnca_pm\set\Dlgpin.h(21) : error C2057: expected constant expression
实在不明白问题的原因
搜索更多相关主题的帖子: 对话框 数据 
2006-09-14 10:00
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
我也不知道你的代码写的是什么意思。
EDIT控件传递数据是这样的:
比如:EDIT控件的变量定义为m_Edit;
那么当你执行
UpdateData(TRUE);的时候这个函数会把你对话框上的全部EDIT控件的数据都刷新到对应的变量里去。
然后你拿这个变量去用就可以了。
在显示的时候
UpdateData(FALSE);这个函数会把对应变量里的数据刷新到EDIT控件中显示。

C:\Documents and Settings\Administrator\桌面\新建文件夹\cnca_pm\set\Dlgpin.h(21) : error C2065: 'IDD_DLGPIN' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\新建文件夹\cnca_pm\set\Dlgpin.h(21) : error C2057: expected constant expression

第一个错误是:IDD_DLGPIN这标识没有申明;
第二个错误是:需要常量表达式

[此贴子已经被作者于2006-9-14 10:52:53编辑过]


我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-09-14 10:52
osamaleiyu
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-22
收藏
得分:0 
谢谢 Bekky
我是想实现这样的功能:第一个对话框的一个按钮激活了另外一个模态对话框,在这个对话框中输入了一个字符串,然后把字符串传递回第一个对话框
我已经用类的公有变量方式解决了,但是这样申明一个静态的变量:
extern CString g_sopin
在第二个对话框中,确定按钮:
void CDlgpin::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
g_sopin = m_sopin; //m_sopin是EDIT输入的内容
CDialog::OnOK();
}
在第一个对话框中我想直接用g_sopin
但是编译提示错误:Dlgpin.obj : error LNK2001: unresolved external symbol "class CString g_sopin" (?g_sopin@@3VCString@@A)
Debug/Set.exe : fatal error LNK1120: 1 unresolved externals
2006-09-14 11:05
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
m_sopin是什么类型???是不是控件类型??
按照错误看来g_sopin这个是CString类型,是不是你把类型搞错了。

我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-09-14 11:11
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
没必要申请静态变量,这样搞:
比如把Dialog2中的数据传到Dialog1中。
在Dilaog2中定义变量,比如就你的那个变量:
CString g_sopin

接着在Dialog1中定义显示控件的变量和一个Dialog2的变量,例如:
CString m_sopin;
CDialog2 m_Dialog2;

然后在需要的地方:
m_sopin = m_Dialog2.g_sopin;
就把变量传过来了。

[此贴子已经被作者于2006-9-14 11:30:44编辑过]


我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-09-14 11:30
osamaleiyu
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-22
收藏
得分:0 

谢谢谢谢 确实是搞错类型了,后面的方法更好一些

2006-09-14 11:54
快速回复:[求助]在对话框之间传递数据的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040164 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved