mfc中实现主对话框和子对话框数据互换问题

xwdpepsi 2010-12-10 04:28:22
我准备用mscomm控件实现串口通信,在主对话框中添加mscomm控件,然后我想在一个菜单的弹出对话框中实现串口调试助手的一些功能,比如说设置端口后及发送和接受显示从串口传来的数据。请问怎么实现?
我的思路是通过将主对话框类和子对话框类设为友元类,然后从对话框通过友元函数调用主对话框中的类成员变量(从串口接受的数据)但是发现在从对话框中调用这个函数的时候,不能把数据传回来。因为在调用函数中是这样写的
void CDevicesetDlG::GetRXEditData()//从CMonitor2Dlg获得串口新得到的数据
{
CMonitor2Dlg monitor;//其中CMonitor2Dlg类是主对话框类,m_EditRXData是数据成员。
m_strRecv=monitor.m_EditRXData;
}
分析原因,可能是由于在新建一个monitor类时,重新调用的是初始化函数,所以m_EditRXData是数据成员也是重新生成的,所以我就想通过将m_EditRXData是数据成员设置为static变量,在CMonitor2Dlg类的构造函数中申明,在其
BOOL CMonitor2Dlg::OnInitDialog()函数中初始化,发现如下错误:
D:\软件备份\VC6.0 完整绿色版\MyProjects\monitor2\monitor2.cpp(70) : error C2655: 'm_EditRXData' : definition or redeclaration illegal in current scope
d:\软件备份\vc6.0 完整绿色版\myprojects\monitor2\monitor2dlg.h(22) : see declaration of 'm_EditRXData'
请问各位大侠,这是为什么stacic变量应该在哪申明,在哪初始化????还有如果我想实现这个功能,还有没有其他思路?????
请大神指点
...全文
366 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwdpepsi 2010-12-13
  • 打赏
  • 举报
回复
谢谢各位。。
zzw820626 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mazm_yanzhu 的回复:]
用windows消息吧,方便
[/Quote]
++
向立天 2010-12-11
  • 打赏
  • 举报
回复
可以把串口的指针传给子对话框
子对话框通过指针对串口操作
pshchao 2010-12-11
  • 打赏
  • 举报
回复
把主对话框的串口句柄,当参数传递到子窗口中。 或者使用全局变量
yqf_123 2010-12-11
  • 打赏
  • 举报
回复
用全局变量
jianuMan 2010-12-10
  • 打赏
  • 举报
回复
Sendmessage
Eleven 2010-12-10
  • 打赏
  • 举报
回复
子对话框类中可以保持父窗口类的指针
xwdpepsi 2010-12-10
  • 打赏
  • 举报
回复
用什么消息?[Quote=引用 2 楼 mazm_yanzhu 的回复:]
用windows消息吧,方便
[/Quote]
xwdpepsi 2010-12-10
  • 打赏
  • 举报
回复
你能具体解释一下吗?? 怎么操作[Quote=引用 1 楼 ouyh12345 的回复:]
在类之间传数据,要传堆上的
之前,要获得类的指针
[/Quote]
xwdpepsi 2010-12-10
  • 打赏
  • 举报
回复
你能具体解释一下吗?怎么操作[Quote=引用楼主 xwdpepsi 的回复:]
我准备用mscomm控件实现串口通信,在主对话框中添加mscomm控件,然后我想在一个菜单的弹出对话框中实现串口调试助手的一些功能,比如说设置端口后及发送和接受显示从串口传来的数据。请问怎么实现?
我的思路是通过将主对话框类和子对话框类设为友元类,然后从对话框通过友元函数调用主对话框中的类成员变量(从串口接受的数据)但是发现在从对话框中调用这个函数的时候,不能把数据传回来。因为在调用函数中是这样……
[/Quote]
abesky 2010-12-10
  • 打赏
  • 举报
回复
这个可以反传,在主窗口中需要在子窗口中设置的变量什么的,可以把主窗口中的对象用指针方式传递到子窗口中,或者直接把主窗口对象当指针传递给子窗口,子窗口就可以访问主窗口的对象。
不知道说明白了没有~~
mazm_yanzhu 2010-12-10
  • 打赏
  • 举报
回复
用windows消息吧,方便
ouyh12345 2010-12-10
  • 打赏
  • 举报
回复
在类之间传数据,要传堆上的
之前,要获得类的指针

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧