通过调用 EnableWindow,不能禁用对话栏上的按钮控件。下面的代码不起作用:
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
对话栏上的控件的行为与工具栏上的位图。它们可以启用或禁用通过手动添加 (如 CMainFrame) 的相应类的消息映射中的 ON_UPDATE_COMMAND_UI。
分步示例
在您的对话栏,如与资源 ID IDC_BUTTON1,点击式上将控件放置后使用下列步骤来管理控件的状态:
在您的类声明中,将添加一个处理程序函数的声明:
afx_msg void OnUpdateButton1(CCmdUI* pCmdUI);
在您的类的实现,消息映射中添加手动项:
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
...
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateButton1)
END_MESSAGE_MAP()
提供了处理程序函数的定义,如下所示:
void CMainFrame::OnUpdateButton1(CCmdUI* pCmdUI)
{
pCmdUI->Enable( TRUE );
}