MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效。
注:可以设置透明背景,但还不能做到透明度设置(如50%透明度)
如果设置了背景色,就不保留透明背景
默认背景色是透明的
// 设置背景色(若clr为CLR_NONE,则背景透明)
void SetBackgroundColor(COLORREF clr){m_clrBackground = clr;}
// 设置文字前景色
void SetTextColor(COLORREF clr){m_clrText = clr;}
// 设置文字字体
void SetFont(CString strFaceName, LONG nHeight);
如何使用:
1.先将RichStatic.h和RichStatic.cpp添加入工程2.对话框添加Static控件后,增加一个控件变量,类型设置为CRichStatic(或手动添加,在对话框类DoDataExchange中添加DDX_Control)
源码:
#pragma once
// CRichStatic
class CRichStatic : public CStatic
{
DECLARE_DYNAMIC(CRichStatic)
public:
CRichStatic();
virtual ~CRichStatic();
protected:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg LRESULT OnSetText(WPARAM,LPARAM);
DECLARE_MESSAGE_MAP()
virtual void PreSubclassWindow();
private:
COLORREF m_clrText; // 文字前景色
COLORREF m_clrBackground; // 文字背景色
CFont *m_pTextFont; // 文字字体
CBitmap m_Bmp; // 保存背景用的位图对象
BOOL m_selfCreated;
public:
// 设置背景色(若clr为CLR_N