MFC的button控件是一个不同于其他控件,其CButtton类是CWnd的一个子类,在修改button的背景、颜色和边框的时候必须自己进行编写一个新的类,如CMyButton。下面是进行背景、颜色、边框修改的步骤:
1.在项目->添加类->CMyButton。这样会自动生成两个文件,一个.CPP文件和一个.h文件。例如CMyButton.cpp和CMyButton.h
2.在你的主工程的头文件C**Dlg.h中添加对CMyButton.h的包含,即 #include “CMyButton.h”
3.找到OnInitDialog()函数,在该函数里面添加如下代码:
CMyButton m_Btn;//定义一个CMybutton的变量,可以在其他地方进行定义,只需要包含 “CMyButton.h” 即可
//将按钮修改为BS_OWNERDRAW风格,允许button的采用自绘模式
GetDlgItem(IDC_BUTTON1)->ModifyStyle(0,BS_OWNERDRAW,0);
//绑定控件IDC_BUTTON1与类CMyButton,响应重载函数DrawItem()
m_Btn.Attach(IDC_BUTTON1,this);
//设置Button Down的背景色,SetDownColor()和SetUpnColor()是CMyButton类中的析构函数
m_Btn.SetDownColor(RGB(255,0,0));
//设置Button Up的背景色
m_Btn.SetUpColor(RGB(0,0,255));
注:若控件IDC_BUTTON1在以前进行过消息绑定,那么就会出现bug,只需要在映射函数DoDataExchange()中将消息绑定的语句注释掉就行了。如下:
//DDX_Control(pDX, IDC_BUTTON1, m_cbBtn);//注释掉就可以了。