我有CPropertySheet,它包含多个CPropertyPage作为标签。在其中一个CPropertyPage中,我有一个按钮,然后单击按钮启动CDialog。我试图让控制到CPropertyPage调用CDialog类方法中的GetParent()方法但不知何故我没有得到正确的父窗口,当我尝试访问CPropertypage的成员时,它会引发访问冲突异常。 / p>
以下是我使用的代码:
CDialog *parentDialog = (CDialog *)GetParent();
CPropertyPage *parentPage = (CPropertyPage *)parentDialog->GetParent();
DResourceStateMgr dSrcStateMgr(parentPage->m_psp.hInstance);
// throws Access Violation exception.
同样的事情曾经在Visual Studio 2008中工作,但当我搬到visual studio 2013时,它会抛出异常。