VS2005 MFC 怎么设置按钮颜色

VS2005 MFC 如何设置按钮颜色
如题…
我希望能按下按钮,一种颜色,再按下,另外一种颜色。
百度了好长时间,尝试了好几种,都不行!
想知道有谁懂??求赐教VS2005 MFC 怎么设置按钮颜色
------解决思路----------------------
依稀记得需要创建个子类,然后实现OwnerDraw(可能)方法。
------解决思路----------------------
如一楼所说,自定义一个控件类,在每次相应点击操作时,对控件进行重绘
------解决思路----------------------
某个大神说过,会用搜索引擎,也是一种技能VS2005 MFC 怎么设置按钮颜色
------解决思路----------------------
https://www.baidu.com/s?wd=mfc%E8%AE%BE%E7%BD%AE%E6%8C%89%E9%92%AE%E9%A2%9C%E8%89%B2&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=98922965_hao_pg&rsv_enter=1&rsv_sug3=4&rsv_sug1=2&rsv_t=ca1dWIRdm%2BZlxZbpQHOQcFSajthNTGXAxRurmm%2FybKdktDqEKcOBx4dLnlR9alaboQcxnlaL&rsv_sug2=0&inputT=5599&rsv_sug4=6586
------解决思路----------------------
为按钮添加一个更换图片的事件呗.
一个标记:count=0
当按下的时候.count++
此时出发按下事件,该事件通过检测count%2==0来判断当前按钮应该加载哪张图片.
------解决思路----------------------
我建立了一个工程,名叫做Tset。然后使用画图工具建立两个位图文件。加载到项目中(右键添加资源),位图加载后我没有更改它们的ID(IDC_BITMAP1,IDC_BITMAP2)
然后在这些地方添加代码如下:

class CTestDlg : public CDialogEx
{
// 构造
public:
CTestDlg(CWnd* pParent = NULL); // 标准构造函数

//如下三行是我添加的代码
HBITMAP   hBitmap1; //表示位图1
HBITMAP   hBitmap2; //表示位图2
bool hit; //一个判断当前应该加载什么位图的标记

// 对话框数据
enum { IDD = IDD_TEST_DIALOG };

protected:
。。。。。。。。。。。

在***Dlg.cpp文件的OnInitDialog函数中添加下面两行,使得位图资源和表示位图的变量关联

// TODO: 在此添加额外的初始化代码

hBitmap1 = LoadBitmap(AfxGetInstanceHandle(), 
MAKEINTRESOURCE(IDB_BITMAP1)); // IDB_BITMAP_TEST为资源图片ID  

hBitmap2 = LoadBitmap(AfxGetInstanceHandle(), 
MAKEINTRESOURCE(IDB_BITMAP2)); // IDB_BITMAP_TEST为资源图片ID  

在***Dlg文件的构造函数中,为hit做初始化

CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CTestDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
hit = false; //我添加的一行
}

往dialog中添加一个按钮,其他的都不变(比如ID就叫做IDC_BUTTON 1),双击这个按钮,会跳转到它的一个函数,添加如下代码:

void CTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if(hit)
{
((CButton *)GetDlgItem(IDC_BUTTON1))->SetBitmap(hBitmap1);
hit = false;
}
else
{
((CButton *)GetDlgItem(IDC_BUTTON1))->SetBitmap(hBitmap2);
hit = true;
}
}


----------------
这几个已经是非常简单的做法了,运行后单击一次改变一次颜色。好的做法是重绘这个控件,使得单机的时候有阴影效果、边框效果等,单纯的覆盖一张位图,会将这些效果覆盖掉。