Article ID: 152376 - Last Review: November 21, 2006 - Revision: 3.1

HOWTO: How To Disable Push Buttons on a DialogBar in MFC

This article was previously published under Q152376

On This Page

Expand all | Collapse all

SUMMARY

Push-button controls on a DialogBar cannot be disabled by calling EnableWindow. The following code has no effect:
   GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
				
This article describes how to implement push-button controls that can be disabled.

MORE INFORMATION

Controls on a DialogBar behave like the bitmaps on a Toolbar. They can be enabled or disabled by manually adding an ON_UPDATE_COMMAND_UI within the message map of the appropriate class (such as CMainFrame).

Step-by-Step Example

After you have placed a control on your DialogBar, such as a push-button with a resource ID of IDC_BUTTON1, use the following steps to manage the state of the control:

  1. Within the declaration of your class, add the declaration for a handler function:
       afx_msg void OnUpdateButton1(CCmdUI* pCmdUI);
    						
  2. Within the implementation of your class, add a manual entry in the message map:
       BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
           //{{AFX_MSG_MAP(CMainFrame)
           ...
           //}}AFX_MSG_MAP
           ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateButton1)
       END_MESSAGE_MAP()
    						
  3. Provide the definition of the handler function, as follows:
       void CMainFrame::OnUpdateButton1(CCmdUI* pCmdUI)
       {
           pCmdUI->Enable( TRUE );
       }

APPLIES TO
  • Microsoft Foundation Class Library 4.2, when used with:
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 2.2
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Subscription
Keywords: 
kbdocview kbhowto kbmfcctrlbar kbuidesign KB152376
Retired KB ArticleRetired 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.
 

Article Translations