【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;
}
相关推荐
2401_8920709820 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
yuzhuanhei20 小时前
Visual Studio 配置C++opencv
c++·学习·visual studio
不爱吃炸鸡柳21 小时前
C++ STL list 超详细解析:从接口使用到模拟实现
开发语言·c++·list
十五年专注C++开发21 小时前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
‎ദ്ദിᵔ.˛.ᵔ₎21 小时前
STL 栈 队列
开发语言·c++
2401_8920709821 小时前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
郭涤生21 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿21 小时前
vector
c语言·开发语言·数据结构·c++·算法
cccyi721 小时前
【C++ 脚手架】etcd 的介绍与使用
c++·服务发现·etcd·服务注册
liu****21 小时前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯