MFC 改变static字体颜色、大小、背景颜色【自定义类】

原创 2011年11月15日 16:01:51

 

新建一个MFC标准Dialog工程并生成一个CStatic的自定义类,我的类名为CColorStatic




定义必要变量

protected:
	COLORREF m_crText;			// 字体颜色
	COLORREF m_crBackColor;		// 背景颜色
	HBRUSH	 m_hBrush;			// 画刷
	LOGFONT	 m_lf;				// 字体大小
	CFont	 m_font;			// 字体

	bool	m_bTran;			// 是否透明

重载CColorStatic类中的=WM_CTLCOLOR事件,是有=,不是WM_CTLCOLOR事件

HBRUSH CColorStatic::CtlColor(CDC* pDC, UINT nCtlColor)
{
	// TODO:  在此更改 DC 的任何属性

	// TODO:  如果不应调用父级的处理程序,则返回非 null 画笔
	if (CTLCOLOR_STATIC == nCtlColor)
	{
		pDC->SelectObject(&m_font);
		pDC->SetTextColor(m_crText);
		pDC->SetBkColor(m_crBackColor);
		if (m_bTran == true)
			pDC->SetBkMode(TRANSPARENT);
	}
	return m_hBrush;


另外添加一些接口类函数

void CColorStatic::SetTextColor( COLORREF crText )
{
	m_crText = crText;
	RedrawWindow();
}

void CColorStatic::SetFontSize(int nSize)
{
	nSize *= -1;
	m_lf.lfHeight = nSize;
	m_font.DeleteObject();
	m_font.CreateFontIndirect(&m_lf);
	RedrawWindow();
}


void CColorStatic::SetBackColor(COLORREF crBackColor)
{
	m_crBackColor = crBackColor;
	RedrawWindow();
}

void CColorStatic::SetTransparent(bool bTran)
{
	m_bTran = bTran;
	RedrawWindow();
}


至此就结束了。

Dome 部分代码

void CColorStaticDomeDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	//OnOK();
	m_static1.SetTransparent(FALSE);
	m_static1.SetTextColor(RGB(255,0,0));
	m_static1.SetBackColor(RGB(0,255,0));
	m_static1.SetFontSize(15);
	

	m_static2.SetTextColor(RGB(0,255,255));
	m_static2.SetFontSize(20);
}


 

MFC改变static text颜色

1. 打开资源视图。2. 双击打开STATIC所在的对话框。3. 修改STATIC的ID属性,这里假设为IDC_TEXT1。4.为对话框添加类,假设为CMyDialog.5. 选择对话框,在属性面板上...
  • SysProgram
  • SysProgram
  • 2011-07-04 11:05:11
  • 7806

VC/MFC如何设置对话框、static背景颜色

方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 (这个函数已经废弃) ? 1 void SetDialogBkColor(...
  • lgstudyvc
  • lgstudyvc
  • 2016-05-05 16:45:38
  • 4038

MFC中修改CStatic控件颜色

HBRUSH CTestDlg1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCt...
  • rundll64
  • rundll64
  • 2014-05-19 23:07:49
  • 468

MFC中改变static text 字体大小

代码段亲测无误 在学习MFC中需要调整编辑框中的字体大小,以下是我结合网上与自己实际操作总结的,希望对其它同学有所帮助。 首先,了解以下函数原型: BOOL CreateFont( int nHei...
  • xbt312
  • xbt312
  • 2015-05-12 08:00:12
  • 2459

MFC中设置static text的字体和颜色[转]

原文地址:http://blog.sina.com.cn/s/blog_5eb73de10100dt5l.html     在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件...
  • Pc620
  • Pc620
  • 2011-10-28 21:17:40
  • 6469

CColorStatic 改变颜色

#pragma once // CColorStatic class CColorStatic : public CStatic { DECLARE_DYNAMIC(C...
  • a379039233
  • a379039233
  • 2015-06-26 16:49:31
  • 1152

真彩色静态框CColorStatic类的设计实现

关于cstatic控件的自绘,网上也有很多的代码及文章,更有其界面画得很漂亮的、多种多样的功能。近来我自行封装实现了一个真彩色静态框类,目标初衷是从颜色、字体、光标入手,改变原始标准cstatic的色...
  • Plutus_Lee
  • Plutus_Lee
  • 2012-07-09 23:31:49
  • 1016

MFC中设置static text控件的背景色、字体、字号和颜色

在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件的颜色,比如现在就来改变一个static text控件的 字体、字体大小、字体颜色和背景色。 例如对话框的类为CTestDlg. ...
  • gll028
  • gll028
  • 2013-01-12 14:09:16
  • 2338

VC MFC中修改STATIC的文本颜色和文本字体等

1. 打开资源视图。 2. 双击打开STATIC所在的对话框。 3. 修改STATIC的ID属性,这里假设为IDC_TEXT1。 4.为对话框添加类,假设为CMyDialog. ...
  • qq61394323
  • qq61394323
  • 2014-10-09 21:28:37
  • 4650

mfc中设置statictext的字体和颜色

字体在控制事件中实现,颜色在OnCtlColor中实现。 界面上两个button,一个statictext。 设置statictext的value变量为m_csText; 其余变量为: ...
  • langxm2006
  • langxm2006
  • 2017-08-05 23:48:34
  • 880
收藏助手
不良信息举报
您举报文章:MFC 改变static字体颜色、大小、背景颜色【自定义类】
举报原因:
原因补充:

(最多只允许输入30个字)