自绘式按钮COwnerDrawBtn:可设置文本字体、文本颜色、按钮背景图片

通过MFC进行界面开发时,为了实现更美观的UI效果,通常需要自定义组件。本文介绍了一种自绘按钮COwnerDrawBtn的实现,该按钮允许设置背景图片、文本字体和颜色。作者分享了代码实现,以满足特定的UI需求。
摘要由CSDN通过智能技术生成

使用MFC做界面的程序员,一定很痛苦,因为其默认效果比较古老呆板,实现好的UI效果往往需要费大力气

但是花了精力去做,收获比起只是拖拖界面设置参数的程序员,自然是更多的,最重要的收获,就是灵活和自由,

到最后发现想要什么效果,都可以去自定义实现

最近需要自绘按钮,需求是:能设置背景图、能设置字体、能改文本颜色,

上网找到的都不能完全满足,最后参照着自己实现了一个,经验证可用,贴代码:

//使用示例
COwnerDrawBtn m_btn;
m_btn.MoveWindow(xGap,yGap,BTN_W,BTN_H);
m_btn.SetBkSkin(_T("res\\Btn.bmp"));
m_btn.SetTextFont(120, "宋体");
m_btn.SetTextColor(RGB(255,0,0));

OwnerDrawBtn.h

#ifndef _OWNERDRAW_BTN_H_
#define _OWNERDRAW_BTN_H_

#if _MSC_VER > 1000
#pragma once
#endif 

class COwnerDrawBtn : public CButton
{
public:
	COwnerDrawBtn();
	virtual ~COwnerDrawBtn();
	
private: 
	enum{
		BS_NORMAL=0,	
		BS_HOVER,		
		BS_PUSHDOWN,	
		BS_DISABLE
	};
    int         m_nStatus;			//按钮状态
    BOOL        m_bInRect;          //鼠标进入标志 
    CString     m_strText;          //按钮文字 
    COLORREF    m_BackColor;        //背景色 
    COLORREF    m_TextColor;        //文本颜色 
    CRect       m_BtnRect;          //按钮尺寸 
	CFont		m_font;				//字体
	HBITMAP		m_hBkBmp;			//背景图片
	
public:
	void DrawButton(CDC *pDC);				 //画按钮  
	void DrawBkBmp(CDC *pDC);
	void DrawTxt(CDC *pDC);
	void SetText(CString str); 
    void SetTextColor(COLORREF color);       //设置文本颜色 
    void SetBkColor(COLORREF color);         //设置背景颜色 
	void SetTextFont(int FontHight,LPCTSTR FontName);   //设置字体
	void SetTextFont(CFont* pFont);
	void SetBkSkin(HBITMAP h
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值