Knowledge Base

HOWTO: How to Change Default Button on CPropertySheet

Article ID: 140587

Article Last Modified on 11/21/2006


APPLIES TO


This article was previously published under Q140587

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: kbhowto kbpropsheet kbuidesign KB140587