在MFC程序中,经常会遇到这样的问题,父窗口需要子窗口的值进行更新,或者新建立的子窗口需要一些父窗口的控件变量。遇到这个问题,一般有两种方式,一种是建立消息,声明一个新的系统消息及消息响应函数,通过消息触发响应函数进行工作。第二种就是笔者比较倾向的一种,在子窗口类中建立父窗口类的指针对象,然后在父窗口中产生子窗口对象时,将父窗口的窗口指针赋给子窗口类中建立的父窗口指针对象,这样,子窗口类的对象就获得了父窗口类对象中的所有变量及函数。类似如下
class CFather
{
..............................
};
void CFather::某函数
{
...................................
CChild dlg;
dlg.m_pMain=this;//将父窗口类的指针赋给子类中定义的父类对象
dlg.DoModal();
......................................
}
class CChild
{
public:
...................................