【24】MFC入门到精通——MFC在静态框中 更改字体、颜色、大小 、背景

文章目录

1.修改字体、大小

声明一个CFont类型的类成员变量

cpp 复制代码
CFont m_editFont;

在需要的地方 添加以下两行代码:

cpp 复制代码
//设置静态文本字体大小
m_editFont.CreatePointFont(180, _T("宋体"));
m_Static.SetFont(&m_editFont);

或者新建一个CFont对象

cpp 复制代码
CFont *pFont = new CFont();
//设置静态文本字体大小
pFont->CreatePointFont(180, _T("宋体"));
GetDlgItem(IDC_STATIC)->SetFont(pFont);

2.改变编辑框文本颜色、背景颜色

添加OnCtlColor函数

右键点击该对话框-> 类导向 -> 消息 ->双击添加WM_CTLCOLOR,就可以在Dlg类中看到3所示函数OnCtlColor了。

添加之后,添加代码

cpp 复制代码
HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何特性
	if (pWnd->GetDlgCtrlID() == IDC_result_STATIC)// IDC_result_STATIC为所选文本框ID
	{
		pDC->SetTextColor(RGB(0, 255, 0));//设置字体颜色 
		pDC->SetBkColor(RGB(0, 0, 0));//设置背景颜色
		//pDC->SetBkMode(TRANSPARENT);//设置背景透明
	}
	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
	return hbr;
}

3 运行实例

当按下 Button3,在静态框中显示 ,绿色的OK,背景黑色

cpp 复制代码
void CMFCApplication1Dlg::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码
	CFont* pFont = new CFont();
	//设置静态文本字体大小
	pFont->CreatePointFont(800, _T("楷体"));
	GetDlgItem(IDC_result_STATIC)->SetFont(pFont);

	CString str = _T("OK");
	SetDlgItemText(IDC_result_STATIC, str);
}

HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何特性
	if (pWnd->GetDlgCtrlID() == IDC_result_STATIC)// IDC_result_STATIC为所选文本框ID
	{
		pDC->SetTextColor(RGB(0, 255, 0));//设置字体颜色 
		pDC->SetBkColor(RGB(0, 0, 0));//设置背景颜色
		//pDC->SetBkMode(TRANSPARENT);//设置背景透明
	}
	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
	return hbr;
}
相关推荐
郝学胜-神的一滴34 分钟前
C++11 工程级应用 06:自己造一个类似Python的Range迭代器
开发语言·c++·windows·python·程序人生·microsoft
zh_xuan1 小时前
c++ jthread
开发语言·c++·jthread
神仙别闹2 小时前
基于C++ WinPcap 的网络抓包软件
网络·c++·php
whitelbwwww2 小时前
c++运行RKNN
开发语言·c++
布莱克6052 小时前
栈(Stack)详解:定义、作用、应用场景及与队列的区别(附 C/C++ 代码)
c语言·开发语言·c++·
zmzb01032 小时前
C++课后习题训练记录Day203
开发语言·c++
Dream Cosmos3 小时前
Linux 多线程——线程互斥:从抢票问题到 Mutex 底层原理
linux·c++
Titan20243 小时前
HTTPS基础知识梳理
服务器·网络·c++·网络协议·学习·http·https
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】SSE协议
c++·学习·面试·大模型·sdk
郝学胜_神的一滴4 小时前
C++11 工程级应用 06:自己造一个类似Python的Range迭代器
c++·后端