回 帖 发 新 帖 刷新版面

主题:[讨论]求方法让子窗口关联的类得对象能够访问父窗口关联的类的对象的数据

我写了一个程序 主窗口是和CPropPage1这个类相关联的  (CPropPage1继承了CPropertyPage)
子窗口是我自己添加的一个普通的窗口,和CFind类关联 (继承自CDiaolg)
父窗口里面调用 以下命令弹出子窗口
CFind dlg;
dlg.domodal();
我现在需要在子窗口里面使用 父窗口的函数和变量,这可如何是好?
有人建议我把构造dlg的时候,这么构造:
CFind dlg(this);
dlg.domodal();
即把主窗口的this指针加入进去,他说这样就可以在子窗口里访问父窗口的数据了。。
可是事实上,出现了各种问题:
(本人用VS2008写MFC程序)
问题 1  按照那个人说的 的确传进去一个指针,但是子窗口默认构造函数是CWnd *  类型的,也就是说传进去的父窗口指针强制转换到CWnd类型的了?
问题 2  传进去的指针使用指向运算符的时候,在自动列出成员得下拉菜单里,看不到 CPropPage1 的数据,更别提函数了。。。
问题 3  貌似子窗口类对父窗口类不识别
        我试过在子窗口类里手动添加父窗口类指针,期待着把我被强制转换的指针再转换回去,可是无论是
        CPropPage1 *ppg;
       还是加上作用域标识符 
        CPropPage1::CPropPage1 *ppg;
还是    CPropPage1::CPropPage1() *ppg;
都不识别
系统说什么C++不支持你默认 int
求高手解答

回复列表 (共1个回复)

沙发

这种类,窗口之间的通讯,最好用发送消息方式来实现!

我来回复

您尚未登录,请登录后再回复。点此登录或注册