How to Change Default Button on CPropertySheet

ID: Q140587


The information in this article applies to:


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