You are currently offline, waiting for your internet to reconnect

HOWTO: How to Change Default Button on CPropertySheet

This article was previously published under Q140587
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
When a modal CPropertySheet is created, the default button is the OKbutton. To change the default to a different button, derive a class fromCPropertySheet, override OnInitDialog(), and send a message of DM_SETDEFIDto the sheet with the ID of the new button.
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 beenabled. By default, the Apply button on a modal CPropertySheet is notenabled; it has to be explicitly enabled as shown in the sample code inthis article.

If you want a button other than these default buttons to have the defaultfocus, you have to create the button, say IDC_MYBUTTON, and set focusto that button using:
   SendMessage (DM_SETDEFID, IDC_MYBUTTON);				

Sample Code

// This code sets the Apply button as the default// CMySheet is derived from CPropertySheetBOOL 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;}				
kbinf 4.00

Article ID: 140587 - Last Review: 11/21/2006 16:10:13 - Revision: 2.1

  • Microsoft Foundation Class Library 4.2
  • kbhowto kbpropsheet kbuidesign KB140587