向另一未初始化的属性页设置其控件的参数出错
属性表CMySheet mySheet中有两个属性页CMyPage1 *page1 和 CMyPage2 *page2。
默认情况下page1是active的。
如果在page1中访问page2的控件对象将出现断言错误。 如下:
void CPage1::OnBnClickedOk()
{
CMySheet* psheet = (CMySheet*)(this->GetParent());
CWnd* btn = psheet->page2->GetDlgItem(IDC_BUTTON1); // ASSERT(::IsWindow(m_hWnd));出错
}
原因是此时page2并没有被初始话。如果点击一次page2再回到page1调用以上代码不出错。
但如果在mySheet中调用page1->create(..), 也出现ASSERT错误。
原因是在第一次设page2为active时,系统还会调用一次创建函数。
不知道发送PSM_SETACTIVE可不可以,怎么发,哪位做过,给个关键代码,谢谢了。