怎么让vc里的按钮禁用但是颜色不变灰,和正常按钮一样,只是不能点

如何让vc里的按钮禁用但是颜色不变灰,和正常按钮一样,只是不能点。
我需要控制一个开关必要时禁用,但是禁用以后很难看,我希望禁用时保留正常时的状态,网上找了代码说

    CMainFrame::CMainFrame()      
    {      
    this-> m_bAutoMenuEnable=FALSE;      
    }      
但是我的是基本dlg类,没有CMainFrame,也没有m_bAutoMenuEnable
还有说不影射消息响应函数就行,具体怎么做呢?

------解决方案--------------------
禁用以后的状态比较明显啊,显不好看的话,可以在WM_PAINT中处理,爱搞成什么样子都行
------解决方案--------------------
可以自己定义一个成员变量保存按钮的状态。
class CXXXDlg
{
private:
BOOL m_bIsDisable;
.....
}

然后在对应的响应函数中使用:

void XXX::OnButtonClick()
{
if(m_bIsDisable)//如果按钮被禁用
return; //返回,不执行任何操作
///在下面添加按钮未被禁用时的处理
.....
}
------解决方案--------------------
仅对按钮来说,实现上很简单:

看你的那小段程序估计你是用MFC的,那么就从CButton类派生一个子类,给子类增加对WM_LBUTTONDOWN消息的处理。在你的处理函数里测试一个标志变量。希望允许按钮被点击时,将调用直接传给父类的OnLButtonDown,此时由于父类的OnLButtonDown默认的调Default从而实现的按钮的点击行为。不希望允许按钮被点击时,只需什么也不错即可。
------解决方案--------------------
如果是工具栏,做一个正常时的图象,作一个灰时的图象,CToolBarCtrl::SetImageList ,CToolBarCtrl::SetDisabledImageList来设置,包两个图象绘来一样不就是你要的结果。