回 帖 发 新 帖 刷新版面

主题:[讨论]VC下,窗体间参数传递的问题

我做了一个最简单的窗体程序,点击一个按钮,弹出一个新的窗体:
void CPM800Dlg::OnButtonLocalSet() 
{
    LocalComSet dlg;
    dlg.DoModal();
}
LocalComSet是新窗体的类
然后在新窗体里有一个字符串CString和一个int值,怎么将这两个值传递给主窗体?
最好谁有这样的程序给我个例子参考下,谢谢o(∩_∩)o...

回复列表 (共3个回复)

沙发

可以在新窗体中这样定义两个变量: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();
}

板凳

1楼正解。
如果取消情况下不需要取值的话,可以判断DoModal()返回值。
例如:
if (IDOK == dlg.DoModal())
{
    // add your code here
}

3 楼

如果在主程序要使用那2个变量的话,得定义一个全局变量来保存.再者,如果要其中有一个是char *之类的话,得做深拷贝出来.

我来回复

您尚未登录,请登录后再回复。点此登录或注册