【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;
}
相关推荐
橘子真甜~4 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
asiwxy5 小时前
OpenGL 材质
c++
阿华hhh6 小时前
Linux系统编程(标准io)
linux·开发语言·c++
程序喵大人6 小时前
推荐个 C++ 练习平台
开发语言·c++·工具推荐
fpcc7 小时前
跟我学C++中级篇——std::is_invocable的分析应
c++
Code Slacker9 小时前
LeetCode Hot100 —— 滑动窗口(面试纯背版)(四)
数据结构·c++·算法·leetcode
SHERlocked9310 小时前
摄像头 RTSP 流视频多路实时监控解决方案实践
c++·后端·音视频开发
tang&11 小时前
哈希碰撞攻防战:C++闭散列与开散列实现全解析
c++·哈希算法
眠りたいです11 小时前
现代C++:C++11并发支持库
开发语言·c++·多线程·c++11·c++并发支持库