MFC 改变按钮颜色 - 自定义按钮类

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

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 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值