MFC不同窗口之间传递数据
来源:互联网 发布:sql时间倒序排序语句 编辑:程序博客网 时间:2024/06/10 03:44
问题的由来:
最近在学习串口通信编程,参考的例子大多数都是在一个对话框中同时完成对串口的配置及数据收发的功能。这种方式不太适合于写自己的应用程序(会使得程序界面比较混乱,无法突出程序的重点),因此想让串口的参数配置在一个独立的对话框中进行设置,而后在主程序窗口实现串口通信的消息循环。这样就涉及到了两对话框数据的传递的问题。上网查阅了相关资料根据自己的使用需求和理解整理一番。
实现方法:
class CDlg1: public CDialog
{
public:
int x;
……
}
class CDlg2: public CDialog
{
public:
int y;
void setdata(CDlg1 dlg1)
{
// 实现数据的传递
}
……
}
方法一:通过成员函数实现不同对话框之间数据的传递
class CmyView: public CView
{
CDlg1 dlg1; // 类中声明欲进行数据传递的对话框对象
CDlg2 dlg2;
void XXXXX()
{
dlg1.DoModal(); // 建立对话框1,重写OnInitial()函数
// 在OnInitial()函数中完成对话框1数据初始化工作
}
void YYYYY()
{
dlg2.y = dlg1.x; // 传递数据
dlg2.DoModal();
}
}
方法二:通过类的成员变量实现数据的传递(适用于参数较少的情况)
class CmyView: public CView
{
int z;
void XXZZ()
{
CDlg1 dlg1;
dlg1.DoModal();
z = dlg1.x; // 将对话框1数据保存于类中的成员变量中
}
void ZZYY()
{
CDlg2 dlg2;
dlg2.y = z; // 将成员变量值赋予对话框2对应变量
dlg2.DoModal();
}
}
方法三:将对话框1对象作为参数传递给对话框2的成员函数,在成员函数中实现参数的传递
class CmyView: public CView
{
void DataExChange()
{
CDlg1 dlg1;
cDlg2 dlg2;
if(dlg1.domodel == idok)
{
dlg2.setdata(dlg1); // 把dlg1作为参数给dlg2用什么取什么
}
}
}
还可以传递对象的一个指针或引用。
- MFC不同窗口之间传递数据
- MFC不同窗口之间传递数据
- MFC不同对话框之间的数据传递
- 不同的窗口之间传递数据-OC内存管理
- iPhone使用委托在不同的窗口之间传递数据
- iPhone使用委托在不同的窗口之间传递数据
- 窗口之间传递数据
- MFC中两个不同窗口之间的数据交互
- 不同Activity之间传递数据
- 不同线程之间传递数据
- 不同Activity之间传递数据
- MFC对话框之间传递数据
- 不同窗口之间传递参数html版
- 不同窗口之间传递参数html版
- mfc对话框窗口之间变量的传递
- MFC窗口之间的消息传递
- iphone 使用委托(delegate)在不同的窗口之间传递数据
- 使用委托(delegate)在不同的窗口之间传递数据
- 明文显示密码
- Linux下自动挂载Windows Samba共享目录
- MapReduce 中的两表 join 几种方案简介
- YAK
- javacv小demo--读写图像
- MFC不同窗口之间传递数据
- 零基础写嵌入式操作系统-0
- org.jbpm.api.JbpmException: no org.springframework.transaction.PlatformTransactionManager in current
- hibernate中inverse作用
- java参数传递中的对象传递
- mmu详解
- boot.s 段限长设置
- kernel中bluetooth的初始化
- grep用法