PRB: Assertion While Switching Property Pages in OLE Control (140105)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft Visual C++, 32-bit Editions 2.0
- Microsoft Visual C++, 32-bit Editions 2.1
- Microsoft Visual C++, 32-bit Editions 2.2
- Microsoft Visual C++, 32-bit Editions 4.0
This article was previously published under Q140105 SYMPTOMS
If you have implemented an OLE control that uses a basic MFC CPropertySheet
as a user interface, you may receive the following error when trying to
switch pages by clicking the tab:
Assertion Failed
OC30D.DLL: File DlgCore.CPP Line 194
CAUSE
This assertion occurs in _AfxCheckDialogTemplate, when MFC cannot find the
dialog template resource for the property page.
RESOLUTION
The solution is to override CPropertyPage::OnSetActive and use
AFX_MANAGE_STATE as in the following code:
Sample Code
/* Compile options needed - none
Add the following code to each of your CPropertyPage-derived classes.
*/
BOOL CYourPropPage::OnSetActive()
{
AFX_MANAGE_STATE(_afxModuleAddrThis);
return CPropertyPage::OnSetActive();
}
The prototype for OnSetActive must also be added to your CPropertyPage-
derived class header file.
REFERENCES
For information on AFX_MANAGE_STATE, please see the following article in
the Microsoft Knowledge Base:
127074 How to Use AFX_MANAGE_STATE in an OLE Control
Modification Type: | Major | Last Reviewed: | 10/24/2003 |
---|
Keywords: | kbCtrlCreate kbNoUpdate kbprb kbPropSheet KB140105 |
---|
|