请教一个参数传递的问题,谢谢

pine_heling 2005-04-23 08:28:14
我编一个对话框的程序,其中有好几个子对话框,它们各自有一个自己的对话框类。在主对话框类中有些变量,现在我想在各个对话框中都能使用这些变量,而且使用完后还能对这些变量进行修改更新,然后主对话框又根据这些变量的新值做一些相应的操作,总的来说就是想使这些变量在各个对话框类中共享,有什么好的办法,谢谢
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-04-24
  • 打赏
  • 举报
回复
将各个子对话框的类变量作为主对话框的成员变量,可以随时调用。
zry000 2005-04-23
  • 打赏
  • 举报
回复
嗬嗬,受教了!
本来是为了作用Dlg操作View和Doc类才想到这个方法的。
顺便问一下,非模态对话框用GetParent()有时好像取不到父指针,是不是和Create()的参数有关系?
  • 打赏
  • 举报
回复
那楼上,我告诉你一个更绝的
Dlg1.h
Dlg2.h
Dlg3.h
-----可以合并成DlgX.h---.cpp文件同理,我做过。


我用的方法是GetParent()得到父指针,然后用。
主要是保持各个对话框中保持一直,数据更新的时候,刷到父对话框,再分别刷到子对话框
zry000 2005-04-23
  • 打赏
  • 举报
回复
嗬嗬,不久前刚完成这个问题,把在下的方法提出来仅供参考:
假设我们有3个对话框,对应类CDlg1,CDlg2,CDlg3,每个类对应文件Dlg1.h、Dlg1.cpp;Dlg2.h、Dlg2.cpp;Dlg3.h、Dlg3.cpp;则首先在每个类的头文件开头部分,声明其他类:
//This is Dlg1.h beginning
class CDlg2;
class CDlg3;
...........

//This is Dlg2.h beginning
class CDlg1;
class CDlg3;
...........

//This is Dlg3.h beginning
class CDlg2;
class CDlg1;
...........


然后在每个类的实现文件中引用其他两个类的头文件:
//This is Dlg1.cpp beginng
#include "Dlg1.h"
#include "Dlg2.h"
#include "Dlg3.h"
.....

//This is Dlg2.cpp beginng
#include "Dlg1.h"
#include "Dlg2.h"
#include "Dlg3.h"
.....

//This is Dlg3.cpp beginng
#include "Dlg1.h"
#include "Dlg2.h"
#include "Dlg3.h"
.....

每个类中添加指向其他两个类的指针成员变量,在构造函数中赋值
那么对于其余两个对话框的操作就可以通过指针来进行。
verysmall 2005-04-23
  • 打赏
  • 举报
回复
向子对话框传入主对话框,还有把参数的指针传入子对话框等等

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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