怎样在一个对话框中 使用另一个对话框中的 对象变量????急!

我有两个对话框,在一个对话框中定义了一个串口类的变量,在切换到另一个对话框时我还想使用这个变量对串口进行操作,该如何使用呢?狂搜资料也没理出头绪啊,貌似比一般变量处理起来... 我有两个对话框,在一个对话框中定义了一个串口类的变量,在切换到另一个对话框时我还想使用这个变量对串口进行操作,该如何使用呢?狂搜资料也没理出头绪啊,貌似比一般变量处理起来麻烦啊
要共享的是串口类对象 怎么实现
展开
 我来答
尚宁大词
2020-03-29 · TA获得超过3.6万个赞
知道小有建树答主
回答量:1.2万
采纳率:35%
帮助的人:823万
展开全部
如果变量不在类中,那么在另一个对话框的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而不导致变量重定义,就绝对不能在类里面,所以传参函数一定要是友元函数!
明白了吧!
hendlon
2009-09-01 · TA获得超过296个赞
知道小有建树答主
回答量:544
采纳率:100%
帮助的人:401万
展开全部
假如A,B两个对话框。
A中定义了你说的变量,在B中如何使用?

在B对话框的cpp文件里包含A对话框的h文件,要使用A的变量,只需创建一个A的对象,再使用对象访问A的变量。
假定A中定义变量为var
在B中使用。
A a;
a.var=xxxx;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友38c8e98
2009-08-31 · TA获得超过2657个赞
知道小有建树答主
回答量:1131
采纳率:0%
帮助的人:571万
展开全部
全局变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式