mfc中子窗口怎么获得父窗口的值

mfc中子窗口如何获得父窗口的值
rt,父窗口的一些数据想要传给子窗口,怎么弄了
------解决思路----------------------
要获得父窗口的值,就在父窗口定义一些专门用来获取的函数,然后在子窗口中调用就行了
比如,父窗口CMyDlg   子窗口CNewDlg
父窗口定义一个 int GetXXXX(){return  m_iValue;}
子窗口就int iValue = ((CMyDlg*)GetParent())->GetXXXX();
------解决思路----------------------
也可以修改子窗体的构造函数,在初始化时做为构造函数的参数传入
比如;
CChildDlg::CChilddlg(int count)
{
 this->m_Count=count;
}
父窗口中调用时
 CParentWnd::Fun()
{
CChilddlg dlg(100);
dlg.DoModal();
}
------解决思路----------------------
C子窗口* pDlg = new C子窗口(this);
pDlg.Create();

pDlg.子窗口变量 = 父窗口变量;
------解决思路----------------------
假定父窗口需要往子窗口(其句柄为hParentWnd)发送获取数据消息WM_SEND_DATA_INFO

#define WM_SEND_DATA_INFO      WM_USER+1

假定父窗口包含了子窗口对象m_ChildDlg;
那么在父窗口发送信息给子窗口对应的消息响应函数中有

DATAINFO DataInfo;
//填充数据...
::PostMessage(m_ChildDlg.m_hWnd,WM_SEND_DATA_INFO,WPARAM(&DataInfo),NULL);//此时DataInfo包含了数据

子窗口重载PreTranslateMessage函数,在函数体内写下

if (pMsg->message==WM_SEND_DATA_INFO)
{
//子窗口类有数据成员DataInfo结构体变量 m_DataInfo
memcpy(&m_DataInfo,(DataInfo*)pMsg->wParam,sizeof(DataInfo));
}