MyException - 我的异常网
当前位置:我的异常网» VC/MFC » MFC子窗口种间互相访问

MFC子窗口种间互相访问

www.MyException.Cn  网友分享于:2013-02-20  浏览:66次
MFC子窗口类间互相访问?
VC6.0上MFC编程:我新建一个工程,主面版,类是CD,然后以child的显示方式添加两个子面板ID1,ID2,类分别是CD1,CD2,在CD中的指针是p1,p2,我要在子面板ID1的类CD1中访问子面板ID2的类CD2中的成员,我的方法是((CD2*)((CD*)GetParent()->p2))->面板2类CD2中的函数或者变量,可为什么获不到CD2的指针,我用GetDlgItem(ID2),还有findwindow,没有语法错误,还是获得不到,我哪里错了,我有什么办法实现子面板类之间的互相访问?

------解决方案--------------------
class CD;
class CD1
{
 public:
   CD *m_pFrameCD;
}
class CD2
{
 public:
   CD *m_pFrameCD;
}
class CD
{
  pulic:
    CD1 *m_p1;
    CD2 *m_p2;
....
    //在初始化函数中:
    m_p1 = new CD1;
    m_p1->m_pFrameCD = this;
    m_p2 = new CD2;
    m_p2->m_pFrameCD = this;
}
------解决方案--------------------
在CD1,CD2类的前面先申明 class CD;然后在相应的cpp中把CD的头文件include进来
------解决方案--------------------
在CD主版面 定义一个全局指针

1.
CD *MainDlg;


在主版面的OnInitDialog函数中,将主版面的this指针传递给他

MainDlg = this;

2.

在子版本CD1头文件中全局引用该指针

extern CD *MainDlg;

之后,您可以随意在CD1子版面的类成员函数中随意引用该全局指针

,比如CD1中有类成员变量

bool IsCd1Bool;

MainDlg->IsCd1Bool = false;


即可
 

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有