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.
Back to the top
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).
Back to the top
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 );
} |
Back to the top