Article: Q146916
Product(s): Microsoft C Compiler
Version(s):
Operating System(s):
Keyword(s): kbcode kbDlg kbMFC KbUIDesign kbVC kbVC500 kbVC600 kbDSupport
Last Modified: 26-MAR-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), used with:
- Microsoft Visual C++, 32-bit Editions
- Microsoft Visual C++.NET (2002)
-------------------------------------------------------------------------------
SUMMARY
=======
This article describes how to implement the standard OK, Cancel, and Apply
buttons in a modeless CPropertySheet object.
MORE INFORMATION
================
For a modeless CPropertySheet, the Microsoft Foundation Classes (MFC) resize the
sheet and hide the standard buttons in the CPropertySheet::OnInitDialog member
function. To prevent MFC from doing this, perform the following steps:
- Derive a class from CPropertySheet and override the OnInitDialog function.
- Set "m_bModeless" to FALSE and remove the WF_CONTINUEMODAL style for
"m_nFlags".
- Call CPropertySheet::OnInitDialog.
- Set "m_bModeless" back to TRUE and add the style WF_CONTINUEMODAL to
"m_nFlags".
The following sample code illustrates this technique:
// CMySheet is derived from CpropertySheet.
// Compile options needed: default.
BOOL CMySheet::OnInitDialog()
{
m_bModeless = FALSE;
m_nFlags |= WF_CONTINUEMODAL;
BOOL bResult = CPropertySheet::OnInitDialog();
m_bModeless = TRUE;
m_nFlags &= ~WF_CONTINUEMODAL;
return bResult;
}
In a modeless CPropertySheet object, the OK and Cancel buttons do not close the
property sheet when they are clicked. They do send a WM_COMMAND message with
IDOK or IDCANCEL to the sheet, and the OnOK or OnCancel functions are called for
the page. To close the sheet, you can implement ON_COMMAND handlers for IDOK and
IDCANCEL in the CPropertySheet and call the EndDialog function to close the
sheet.
Additional query words: modeless CPropertySheet buttons property sheet propertysheet
======================================================================
Keywords : kbcode kbDlg kbMFC KbUIDesign kbVC kbVC500 kbVC600 kbDSupport
Technology : kbAudDeveloper kbMFC
Version : :
Issue type : kbhowto
=============================================================================