VC++怎么取得父窗口变量的值?

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:46:03
比如说弹出窗口想得到父窗口类的一个int。
如果父窗口是MainFrame呢?

((CaaaWnd*))GetParent())->m_parent_var;
其中,CaaaWnd是父窗口的类名,m_parent_var是父窗口的成员变量。

父窗口dlg1 中打开 dlg2 时,dlg2 能修改 dlg1 中的成员变量

//dlg1.cpp
#include "dlg2.h"
CDlg1::OnButton1()
{
CDlg2 dlg2;
dlg2.m_pDlg1 = this;
dlg2.DoModal();
}

//dlg2.h
class CDlg1;//添加dlg1类的声明
class CDlg2 : public CDialog
{
...
public:
CDlg1 *m_pDlg1;
}

//dlg2.cpp
#include "dlg1.h"

至此,你可以在dlg2.cpp中通过m_pDlg1操作CDlg1类中的成员变量了。

你可以在子窗口的代码中定义一个指针,比如:
CMainDlg
CSubDlg

在CMainDlg中
CSbuDlg cd;
cd.ParentPointer = (CMainDlg *)this;
cd.DoModal();
此时在CSbuDlg里,可以用ParentPointer获取父窗体的类指针,因此做什么都可以了