How to Change Default Button on CPropertySheet

ID: Q140587


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, version 4.0


SUMMARY

When a modal CPropertySheet is created, the default button is the OK button. To change the default to a different button, derive a class from CPropertySheet, override OnInitDialog(), and send a message of DM_SETDEFID to the sheet with the ID of the new button.


MORE INFORMATION

The IDs of the buttons that are created in a modal CPropertySheet are:


   IDOK            - OK button
   IDCANCEL        - Cancel button
   ID_APPLY_NOW    - Apply button
   IDHELP          - Help button 
Before you can set the focus to a button, the button must exist and be enabled. By default, the Apply button on a modal CPropertySheet is not enabled; it has to be explicitly enabled as shown in the sample code in this article.

If you want a button other than these default buttons to have the default focus, you have to create the button, say IDC_MYBUTTON, and set focus to that button using:

   SendMessage (DM_SETDEFID, IDC_MYBUTTON); 

Sample Code


// This code sets the Apply button as the default
// CMySheet is derived from CPropertySheet

BOOL CMySheet::OnInitDialog()
{
        CPropertySheet::OnInitDialog();

        // Enable the Apply button
        GetPage(0)->SetModified ();
        // Set the Apply button as the default button
        SendMessage (DM_SETDEFID, ID_APPLY_NOW);

        return TRUE;
} 

Additional query words: kbinf 4.00

Keywords : kbcode kbMFC KbUIDesign kbVC
Version : 4.00
Platform : NT WINDOWS
Issue type :


Last Reviewed: August 2, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.