⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorstaticclass.cpp

📁 C++编程实践与技巧一书各章节的源码
💻 CPP
字号:

#include "stdafx.h"
#include "ColorStaticClass.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CColorStatic

CColorStatic::CColorStatic()
{
	// 设置默认前景文本颜色
	m_crTextColor = ::GetSysColor(COLOR_BTNTEXT);
	// 设置默认背景颜色
	m_crBkColor = ::GetSysColor(COLOR_BTNFACE);
	// 设置背景刷子颜色
	m_brBkgnd.CreateSolidBrush(m_crBkColor);

} // End of CColorStatic


CColorStatic::~CColorStatic()
{
} // End of ~CColorStatic


BEGIN_MESSAGE_MAP(CColorStatic, CStatic)
	//{{AFX_MSG_MAP(CColorStatic)
	ON_WM_CTLCOLOR_REFLECT()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CColorStatic message handlers


HBRUSH CColorStatic::CtlColor(CDC* pDC, UINT nCtlColor) 
{
	// 以新的颜色值设置静态框文本颜色
	pDC->SetTextColor(m_crTextColor);
	// 以新的颜色值设置静态框背景颜色
	pDC->SetBkColor(m_crBkColor);
    return (HBRUSH)m_brBkgnd;
} // End of CtlColor


void CColorStatic::OnDestroy() 
{
	CStatic::OnDestroy();
	// 销毁资源
    m_brBkgnd.DeleteObject();
} // End of OnDestroy


void CColorStatic::SetTextColor(COLORREF crTextColor)
{
	// 设置新的前景文本颜色
	if (crTextColor != 0xffffffff)
	{
		m_crTextColor = crTextColor;
	}
	else // 设置默认的前景文本颜色
	{
		m_crTextColor = ::GetSysColor(COLOR_BTNTEXT);
	}

	// 重绘控件
	Invalidate();
} 

//获取静态框前景文本颜色
COLORREF CColorStatic::GetTextColor()
{
	return m_crTextColor;
} 


void CColorStatic::SetBkColor(COLORREF crBkColor)
{
	// 设置新的背景颜色
	if (crBkColor != 0xffffffff)
	{
		m_crBkColor = crBkColor;
	}
	else // 设置默认背景颜色
	{
		m_crBkColor = ::GetSysColor(COLOR_BTNFACE);
	}

    m_brBkgnd.DeleteObject();
    m_brBkgnd.CreateSolidBrush(m_crBkColor);

	// 重绘控件 
	Invalidate();
} 

//获取背景颜色
COLORREF CColorStatic::GetBkColor()
{
	return m_crBkColor;
} 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -