MFC 之 控件的颜色、字体、背景设置
实现WM_CTLCOLOR消息
HBRUSH CtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: 在此更改 DC 的任何特性if (pWnd->GetDlgCtrlID() == IDC_TEST){pDC->SetTextColor(m_color); //设置字体颜色pDC->SetBkColor(RGB(255, 255, 255));//设置背景颜色pDC->SetBkMode(TRANSPARENT); //设置背景透明pDC->SetTextAlign(SS_LEFT); //设置对齐方式pDC->SelectObject(&m_font); //设置字体}//return m_bru; //返回你需要的画笔// TODO: 如果默认的不是所需画笔,则返回另一个画笔return hbr;
}
设置字体
方法一:
在onpaint中选择所需要的字体CFont
pDC->SelectObject(&m_font); //设置字体
方法二:
LOGFONT lf;
CClientDC dc(this);
font = dc.GetCurrentFont();
if(NULL != font)
font->GetLogFont(&lf);
::ZeroMemory(&lf, sizeof(&lf));
lf.lfHeight = 30;
具体字体操作参考:
http://www.360doc.com/content/16/1019/22/35648956_599729894.shtml
MFC中LOGFONT字体大小转换
MFC中,LOGFONT的lfHeihgt与FontSize的大小转换规则为:
LOGFONT.lfHeight = MulDiv(-m_FontSize,GetDeviceCaps(GetDC(NULL),LOGPIXELSX),72);
NULL也可以用hDC;
模拟给控件发送消息
如果是想在子窗口操作父窗口的按钮,那么可以模拟按钮事件:
WPARAM wParam;
wParam = BN_CLICKED;
wParam <<= 16;
wParam |= uID; //按钮ID
LPARAM lParam;
lParam = (LPARAM)::GetDlgItem(GetSafeHwnd(), uID);
//pWnd:接受按钮事件的窗口的指针
::PostMessage(pWnd->GetSafeHwnd(), WM_COMMAND, wParam, lParam);
设置DC属性,例如:画刷,画笔,字体等。
CPen *pOldPen=dc->SelectObject(&pen);//画笔选入设备描述表,并返回当前的画笔
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));//创建一个透明的画刷
CBrush *pOldBrush=dc->SelectObject(pBrush);//选择画刷
dc->Rectangle(rect);
dc->FillRect(rect,pBrush);
dc->SelectObject(pOldBrush);//恢复以前 的画刷
消息反射
在windows里面,子控件经常向父控件发送消息,例如很多子控件要绘制自己的背景,就可能向父窗口发送消息WM_CTLCOLOR。对于从子控件发来的消息,父控件有可能在处理之前,把消息返还给子控件处理,这样消息看起来就像是从父窗口反射回来一样
在派生一个控件类时,往往需要设置控件本身的一些属性。可以使用向导类实现带等号的消息,例如: =WM_CTLCOLOR消息
具体参考网址:
https://blog.csdn.net/feimashenhua/article/details/7039859
MFC 之 控件的颜色、字体、背景设置相关推荐
- android控件字体,android 设置控件的颜色字体的方法
1.用代码设置控件的颜色: int b = getResources().getColor(R.drawable.blue);//得到配置文件里的颜色 mButton.setTextColor(b) ...
- 关于.NET报表中图表控件线条颜色和粗细设置
在图表控制显示图形为线条时,由于默认样式线条太粗,,修改方法如下: 1,在图表控件右键,选择属性 2,在属性框,选择数据 3,在"值"这一栏点击编辑 4,在编辑框中,选择外观,然后 ...
- 改变MFC对话框背景色、控件内的字体颜色和背景色
原文转自http://www.rosoo.net/a/201408/17018.html C 设置 Dialog, Group Box, Static Text, Check Box, Edit Ct ...
- VC设置静态文本控件的显示字体和显示内容
首先,在对话框上添加一个Static控件,关联一个控制变量m_static(不是Value,是Control) 然后,建立一个字体变量 private:CFont m_Font; 然后,在对话框初始化 ...
- 如何在 ActiveX 控件中使用字体
字体的使用是ActiveX控件制作过程中不可缺少的部分.本文将深入浅出地介绍在ActiveX控件中制作过程中如何使用字体.本文所提及的ActiveX控件制作是指利用VC++6.0的MFC Active ...
- MFC列表控件ListControl和树控件TreeControl
列表控件 列表相关的类:CListCtrl-父类是CWnd,本质是一个控件: CListView-父类是CView,本质是一个视图.相当于在视图中嵌入了一个CListCtrl控件 列表控件的使用 1. ...
- MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)
MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动) 应用场景 最近参与的一个项目中涉及到在一个对话框中添加两个high-speed-charting控件,在两个控件 ...
- 如何在ActiveX控件中使用字体3
如何在ActiveX控件中使用字体3 例程2:Label1.ocx 例程2的Label1控件与例程1的Label控件在功能实现上没有任何区别,只是在改变字体特性时,不再使用库存字体属性Font,而是使 ...
- MFC工具箱控件的一些用法
转自https://blog.csdn.net/qq_34174814/article/details/51419967 控件工具箱: 2 图形控件(picture):常用于显示位图(Bitmap)和 ...
最新文章
- 2020 年,AI 芯片内存哪家强?
- harbor安装_Harbor镜像仓库搭建
- 双端队列【deque】的常见用法
- 图形的花样翻转(洛谷P1205题题解,Java语言描述)
- 详解Intellij IDEA中.properties文件中文显示乱码问题的解决
- 计算机审计操作实验目的,计算机审计实验报告 满分原创!!.docx
- 3.14 在金山做的动态建模讲座
- SpringBoot2.x炫酷吊炸天前后端分离的后台管理系统实例
- ThinkPHP 3.2.3方法函数总结
- QT5.13.1安装教程
- IE tab for chrome
- gis核密度分析工具_核密度分析工具的初探(Kernel Density)
- “均线金叉和均线死叉”的经典战法
- 三星r381android+wear,三星Gear 2 成功连接非三星手机详细教程
- intent-filter属性介绍
- 人行征信中心提醒:不要随意授权征信查询!
- 【Python爬虫】MongoDB爬虫实践:爬取虎扑论坛
- ARM系统的寻址方式
- 克服“测试怠惰”的习惯
- mysql temporary table select_MYSQL中的CREATE TEMPORARY TABLE | 学步园
热门文章
- android dng图片,在安卓5.0中如何拍摄DNG无损格式的照片?
- vue、uni-app剪裁图片
- MIT操作系统实验lab1(pingpong案例:附代码、详解)
- Espressif IDF学习之路(1)项目文件结构的理解
- 计算机毕设(附源码)JAVA-SSM基于Web学术会议投稿管理系统
- TCPIP卷一(1):二层封装与路由器转发数据过程
- 打造一款自己的XCode
- 【拓展】1324- 服务端渲染SSR及实现原理
- art.dialog
- git pull时产生'Merge branch 'master' of...问题