MFC 改变按钮颜色 - 自定义按钮类
按钮的重绘
主要原理是:一把按钮的重绘属性激活,而覆写DrawItem方法。
第一步:新建 自定义按钮类
新建一个MFC类CCustButton类,继承CButton类。
主要代码如下:
CustomButton.h 声明文件
// CCustomButton
class CCustomButton : public CButton
{
DECLARE_DYNAMIC(CCustomButton)
public:
CCustomButton();
virtual ~CCustomButton();
void SetButtonBgColor(COLORREF color);
void SetButtonTextColor(COLORREF color);
void SetButtonNewThemeBgColor(COLORREF color);
void SetButtonNewThemeTextColor(COLORREF color);
// 采用新主题
void AdoptNewTheme(BOOL bAdoptFlag);
private:
COLORREF m_bgColor; // 背景色
COLORREF m_textColor; // 前景色
COLORREF m_newBgColor; // 新主题 背景颜色
COLORREF m_newTextColor; // 新主题 前景色
BOOL m_bPressed; // 按键按下
BOOL m_bAdoptNewTheme; // 采用新主题 即:新背景色和新前景色
protected:
DECLARE_MESSAGE_MAP()
afx_msg void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT

本文介绍如何通过自定义MFC按钮类实现按钮颜色的更改。通过创建CCustomButton类并覆写DrawItem方法,可以灵活调整按钮背景色和文字颜色,并支持新主题的采用。
最低0.47元/天 解锁文章
958





