mfc中实现主对话框和子对话框数据互换问题
我准备用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变量应该在哪申明,在哪初始化????还有如果我想实现这个功能,还有没有其他思路?????
请大神指点