怎样在一个对话框中 使用另一个对话框中的 对象变量????急!
我有两个对话框,在一个对话框中定义了一个串口类的变量,在切换到另一个对话框时我还想使用这个变量对串口进行操作,该如何使用呢?狂搜资料也没理出头绪啊,貌似比一般变量处理起来...
我有两个对话框,在一个对话框中定义了一个串口类的变量,在切换到另一个对话框时我还想使用这个变量对串口进行操作,该如何使用呢?狂搜资料也没理出头绪啊,貌似比一般变量处理起来麻烦啊
要共享的是串口类对象 怎么实现 展开
要共享的是串口类对象 怎么实现 展开
展开全部
如果变量不在类中,那么在另一个对话框的cpp中定义extern
CString
m_path;然后就可以访问了!
如果变量在类中,那么设对话框A,对话框B
CString
m_path在A的类里面
那么首先在A类中添加一个友元传参函数,比如PassParam(LPVOID
lpParam),
然后在B类中添加一个public变量,比如CString
m_path_in_A)。
然后在对话框B中调用A对话框,并且要在B中访问A类里的m_path,那么
void
B::OnOpenWindowA()
{
A
dlgA;
A.PassParam(this);
A.DoModal();
//之后B类里的m_path_in_A就是B类里的m_path的内容了,你也就可以访问了!
}
对于A类里的PassParam(LPVOID
lpParam):
void
PassParam(LPVOID
lpParam)
{
B
*dlgB
=
lpParam;
dlgB->m_path_in_A
=
m_path;
}
光是把变量设为public是不行的,我给你详细解释一下!
假如m_path在A类中,那么你如果要在B类中使用A类,那么就一定要:
A
xxx;
//xxx为变量名
然后A.yyy;
//yyy为A类中的成员
这样看似可以,但是第一局A
xxx;的意思是定义变量,这句执行后,xxx内的内容是A类构造函数之后的内容,里面绝对不包含你想要的m_path的真实值!此时只有用指针A
*xxx=yyy;才行!但是在B类向A类传递参数的时候,如果你使用了new之类的运算符,也就相当于A
xxx一样,也不会得到期望的东西,唯独只有传递this才可以!一定要this!而传参函数要传this而不导致变量重定义,就绝对不能在类里面,所以传参函数一定要是友元函数!
明白了吧!
CString
m_path;然后就可以访问了!
如果变量在类中,那么设对话框A,对话框B
CString
m_path在A的类里面
那么首先在A类中添加一个友元传参函数,比如PassParam(LPVOID
lpParam),
然后在B类中添加一个public变量,比如CString
m_path_in_A)。
然后在对话框B中调用A对话框,并且要在B中访问A类里的m_path,那么
void
B::OnOpenWindowA()
{
A
dlgA;
A.PassParam(this);
A.DoModal();
//之后B类里的m_path_in_A就是B类里的m_path的内容了,你也就可以访问了!
}
对于A类里的PassParam(LPVOID
lpParam):
void
PassParam(LPVOID
lpParam)
{
B
*dlgB
=
lpParam;
dlgB->m_path_in_A
=
m_path;
}
光是把变量设为public是不行的,我给你详细解释一下!
假如m_path在A类中,那么你如果要在B类中使用A类,那么就一定要:
A
xxx;
//xxx为变量名
然后A.yyy;
//yyy为A类中的成员
这样看似可以,但是第一局A
xxx;的意思是定义变量,这句执行后,xxx内的内容是A类构造函数之后的内容,里面绝对不包含你想要的m_path的真实值!此时只有用指针A
*xxx=yyy;才行!但是在B类向A类传递参数的时候,如果你使用了new之类的运算符,也就相当于A
xxx一样,也不会得到期望的东西,唯独只有传递this才可以!一定要this!而传参函数要传this而不导致变量重定义,就绝对不能在类里面,所以传参函数一定要是友元函数!
明白了吧!
展开全部
假如A,B两个对话框。
A中定义了你说的变量,在B中如何使用?
在B对话框的cpp文件里包含A对话框的h文件,要使用A的变量,只需创建一个A的对象,再使用对象访问A的变量。
假定A中定义变量为var
在B中使用。
A a;
a.var=xxxx;
A中定义了你说的变量,在B中如何使用?
在B对话框的cpp文件里包含A对话框的h文件,要使用A的变量,只需创建一个A的对象,再使用对象访问A的变量。
假定A中定义变量为var
在B中使用。
A a;
a.var=xxxx;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询