【MFC系列】MFC快速设置控件文本字体、大小、颜色、背景

以静态文本为例,分享一下怎么修改文本字体、大小、颜色、背景等参数。其他文本、控件等可参照修改。

1.修改字体、大小

这个很简单,首先在Dlg类中声明一个CFont类型的成员变量:

然后在类的初始化函数OnInitDialog()中添加以下两行代码:

1     //设置静态文本字体大小
2     m_editFont.CreatePointFont(180, _T("宋体"));
3     m_Static.SetFont(&m_editFont);

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

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

 1 HBRUSH CTimerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 2
 3 {
 4
 5     HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
 6
 7
 8
 9     // TODO:  在此更改 DC 的任何特性
10
11     if (pWnd->GetDlgCtrlID() == IDC_Display)// IDC_Display为所选文本框ID
12
13     {
14
15         pDC->SetTextColor(RGB(255, 0, 0));//设置字体颜色
16
17         pDC->SetBkColor(RGB(0, 255, 0));//设置背景颜色
18
19         //pDC->SetBkMode(TRANSPARENT);//设置背景透明
20
21     }
22
23     // TODO:  如果默认的不是所需画笔,则返回另一个画笔
24
25     return hbr;
26
27 }

OnCtlColor函数除了用来设置静态控件的颜色、背景外,还适用于以下几种类型:

CTLCOLOR_BTN                            按钮控件

CTLCOLOR_DLG                            对话框

CTLCOLOR_EDIT                            编辑框

CTLCOLOR_LISTBOX                            列表控件

CTLCOLOR_MSGBOX                        消息控件

CTLCOLOR_SCROLLBAR                                                         滚动条控件

CTLCOLOR_STATIC                           静态控件

除了用上面指定ID设置属性,还可以指定控件类型来设置属性

 1 HBRUSH CTimerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 2
 3 {
 4
 5     HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
 6
 7
 8
 9     // TODO:  在此更改 DC 的任何特性
10
11     if (nCtlColor == CTLCOLOR_STATIC)
12
13     {
14
15         pDC->SetTextColor(RGB(0, 255, 0));//设置字体颜色
16
17         pDC->SetBkColor(RGB(255, 0, 0));//设置背景颜色
18
19     }
20
21     // TODO:  如果默认的不是所需画笔,则返回另一个画笔
22
23     return hbr;
24
25 }

完:)

时间: 2025-01-23 15:00:35

【MFC系列】MFC快速设置控件文本字体、大小、颜色、背景的相关文章

MFC 模仿编译器属性 设置控件

1.VS 编译器 属性设置控件的实现. 完整工程下载地址: 

Win10系列:C#应用控件基础1

Button控件 在Windows应用商店应用的开发中,Button控件是使用比较频繁的控件之一,当用户单击Button控件时,会触发相应的单击事件并在定义好的事件处理方法中执行指定的功能.下面将介绍Button控件的使用方法. 在XAML文件中,Button控件的用法如下所示: <Button?.../> -或- <Button?...> <!--添加子元素--> </Button> -或- <Button?...> <!--添加字符串-

ios之如何让图片显示成圆形的样式/设置控件边框大小以及颜色

比如说QQ登陆头像显示出来的就是圆形的,但实际上它的图片并非就是圆形,而是通过对layer层进行绘制而成的.说到layer每个控件都会有layer层属性所以可以把任意的控件都可以设置成圆形,或是椭圆型看项目需要而定 UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"头像.png"]]; imageView.frame = CGRectMake(100, 100, 100, 1

MFC设置控件和窗口位置

一.控件 CRect rect://矩形 m_pic.GetWindowRect(rect); //得到控件矩形信息m_pic.MoveWindow(0, 0, SavedImage.cols, SavedImage.rows); //设置控件位置(相对于客户区), 大小 二.窗口 1 CWnd* pWnd1 = GetDlgItem(IDD_MFC_OPENCV_DIALOG);//获得句柄 2 SetWindowPos(pWnd1, x, y, SavedImage.cols+15, Sav

MFC控件随对话框大小改变而改变

这也是我项目中碰到的问题,要让对话框中的控件随着对话框大小的变化进行自动调整,一般的做法是在WM_SIZE的响应函数中对所有的控件用MoveWindow()或者SetWindowPos()设置其变化比例. 但是由于需要自己计算,并且还有各种系统引起的情况,比如WIN7里有个选项"拖动时显示窗口内容",选中与不选中导致对话框内容显示完全不一样,选中时错误,不选正确,确实让人头大. 如EasySize是一个很好解决方案,用一些宏封装了内部的实现机制,使用起来方便快捷.原文地址:http:/

MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序,这里介绍两种在对话框picthre控件中显示BMP图片的最简单基础的方法. ~~方法可能并不完美,高手忽略,但是提供一种能运行的方法,希望对刚接触这方面知识的同学有所帮助.可能你觉得文章过于简单或者有些过于详细叙述(点到即可我并不反对),但也为哪些入门同学想想,当初自己也是一头雾水. 一.静态显示bmp图片

VC/MFC 当鼠标移到控件上时显示提示信息

VC/MFC 当鼠标移到控件上时显示提示信息 ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法. 一般用法步骤:  添加CToolTipCtrl成员变量 m_tt.  在父窗口中调用EnableToolTips(TRUE);  在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串CToolTipCtrl::AddTool(pW

[转]MFC子线程中更新控件内容的两种办法

一.概述 每个系统中都有线程(至少都有一个主线程),而线程最重要的作用就是并行处理,提高软件的并发率.针对界面来说,还能提高界面的响应能力.一般的,为了应用的稳定性,在数据处理等耗时操作会单独在一个线程中运行,而所有与主UI线程有关的控件数据刷新应该到主UI线程中处理.也就是数据处理线程发消息,让界面UI去更新控件.在MFC中线程分为界面线程和工作者线程,界面实际就是一个线程画出来的东西,这个线程维护一个"消息队列","消息队列"也是界面线程和工作者线程的最大区别,

VC++ 设置控件显示文本的前景色、背景色以及字体

在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色.背景色以及字体.该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘制之前擦除其客户区. HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  Retur