碉楼了,MFC窗体之间的相互控制

碉堡了,MFC窗体之间的相互控制
窗体1被窗体2弹出,然后根据窗体1的按钮点击事件来控制窗体2的控件。
网上瞧了瞧,大概有几种:
(1)
HWND hwnd=(GetDlgItem(IDD_DIALOG2))->GetSafeHwnd();
CButton *check=(CButton *)::GetDlgItem(hwnd,IDC_CHECK1);
check->SetCheck(1);

(2)
((CButton*)(GetParent()->GetDlgItem(IDC_CHECK1)))->SetCheck(1);

(3)
先获得HWND
CWnd * pCWnd=GetDlgItem(IDD_DIALOG2);
HWND hwnd=pCWnd->m_hWnd;

貌似是正确的方法,执行都是错误的,因为GetDlgItem的时候发生了“无法读取内存”现象,结果是pCWnd或者hwnd或者GetParent()读取结果都是0.

没用过这些方法,也不知道是不是正确的,貌似是正确的,但也不知道在我这里就出不来。
望大神指点,谢谢。

------解决方案--------------------
将窗体2作为窗体1的成员对象吧,这样靠谱点
------解决方案--------------------
设置全局指针分别指向这两个窗口;
然后就可以根据指针互相调用内部的按钮等类别;


 
------解决方案--------------------
PostMessage,其他都椒扯淡
------解决方案--------------------
引用:
这样做很局限啊,假如我又想通过窗体2控制窗体1的控件,这时就不能循环声明了。况且,假如该窗体内容很丰富,作为其他窗体的成员对象就要占用很大的资源,貌似。

此时你可以获取父窗口的句柄 然后就能控制窗口1了  当然 也可以用消息映射啊!