主题:[讨论]VC下,窗体间参数传递的问题
康师傅
[专家分:4630] 发布于 2008-05-24 13:45:00
我做了一个最简单的窗体程序,点击一个按钮,弹出一个新的窗体:
void CPM800Dlg::OnButtonLocalSet()
{
LocalComSet dlg;
dlg.DoModal();
}
LocalComSet是新窗体的类
然后在新窗体里有一个字符串CString和一个int值,怎么将这两个值传递给主窗体?
最好谁有这样的程序给我个例子参考下,谢谢o(∩_∩)o...
回复列表 (共3个回复)
沙发
海上飞洪 [专家分:520] 发布于 2008-05-27 16:50:00
可以在新窗体中这样定义两个变量:private:
CString a;
int b;
public:
CString getCstring()
{
return this->a;
};
int getInt()
{
return this->b;
};
然后在原来的代码中增加代码
void CPM800Dlg::OnButtonLocalSet()
{
LocalComSet dlg;
dlg.DoModal();
a=dlg.getCstring();
b=dlg.getInt();
}
板凳
shuukaki [专家分:850] 发布于 2008-05-28 08:50:00
1楼正解。
如果取消情况下不需要取值的话,可以判断DoModal()返回值。
例如:
if (IDOK == dlg.DoModal())
{
// add your code here
}
3 楼
vanehu [专家分:80] 发布于 2008-09-24 23:01:00
如果在主程序要使用那2个变量的话,得定义一个全局变量来保存.再者,如果要其中有一个是char *之类的话,得做深拷贝出来.
我来回复