实现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 之 控件的颜色、字体、背景设置相关推荐

  1. android控件字体,android 设置控件的颜色字体的方法

    1.用代码设置控件的颜色: int b =  getResources().getColor(R.drawable.blue);//得到配置文件里的颜色 mButton.setTextColor(b) ...

  2. 关于.NET报表中图表控件线条颜色和粗细设置

    在图表控制显示图形为线条时,由于默认样式线条太粗,,修改方法如下: 1,在图表控件右键,选择属性 2,在属性框,选择数据 3,在"值"这一栏点击编辑 4,在编辑框中,选择外观,然后 ...

  3. 改变MFC对话框背景色、控件内的字体颜色和背景色

    原文转自http://www.rosoo.net/a/201408/17018.html C 设置 Dialog, Group Box, Static Text, Check Box, Edit Ct ...

  4. VC设置静态文本控件的显示字体和显示内容

    首先,在对话框上添加一个Static控件,关联一个控制变量m_static(不是Value,是Control) 然后,建立一个字体变量 private:CFont m_Font; 然后,在对话框初始化 ...

  5. 如何在 ActiveX 控件中使用字体

    字体的使用是ActiveX控件制作过程中不可缺少的部分.本文将深入浅出地介绍在ActiveX控件中制作过程中如何使用字体.本文所提及的ActiveX控件制作是指利用VC++6.0的MFC Active ...

  6. MFC列表控件ListControl和树控件TreeControl

    列表控件 列表相关的类:CListCtrl-父类是CWnd,本质是一个控件: CListView-父类是CView,本质是一个视图.相当于在视图中嵌入了一个CListCtrl控件 列表控件的使用 1. ...

  7. MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)

    MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动) 应用场景 最近参与的一个项目中涉及到在一个对话框中添加两个high-speed-charting控件,在两个控件 ...

  8. 如何在ActiveX控件中使用字体3

    如何在ActiveX控件中使用字体3 例程2:Label1.ocx 例程2的Label1控件与例程1的Label控件在功能实现上没有任何区别,只是在改变字体特性时,不再使用库存字体属性Font,而是使 ...

  9. MFC工具箱控件的一些用法

    转自https://blog.csdn.net/qq_34174814/article/details/51419967 控件工具箱: 2 图形控件(picture):常用于显示位图(Bitmap)和 ...

最新文章

  1. 2020 年,AI 芯片内存哪家强?
  2. harbor安装_Harbor镜像仓库搭建
  3. 双端队列【deque】的常见用法
  4. 图形的花样翻转(洛谷P1205题题解,Java语言描述)
  5. 详解Intellij IDEA中.properties文件中文显示乱码问题的解决
  6. 计算机审计操作实验目的,计算机审计实验报告 满分原创!!.docx
  7. 3.14 在金山做的动态建模讲座
  8. SpringBoot2.x炫酷吊炸天前后端分离的后台管理系统实例
  9. ThinkPHP 3.2.3方法函数总结
  10. QT5.13.1安装教程
  11. IE tab for chrome
  12. gis核密度分析工具_核密度分析工具的初探(Kernel Density)
  13. “均线金叉和均线死叉”的经典战法
  14. 三星r381android+wear,三星Gear 2 成功连接非三星手机详细教程
  15. intent-filter属性介绍
  16. 人行征信中心提醒:不要随意授权征信查询!
  17. 【Python爬虫】MongoDB爬虫实践:爬取虎扑论坛
  18. ARM系统的寻址方式
  19. 克服“测试怠惰”的习惯
  20. mysql temporary table select_MYSQL中的CREATE TEMPORARY TABLE | 学步园

热门文章

  1. android dng图片,在安卓5.0中如何拍摄DNG无损格式的照片?
  2. vue、uni-app剪裁图片
  3. MIT操作系统实验lab1(pingpong案例:附代码、详解)
  4. Espressif IDF学习之路(1)项目文件结构的理解
  5. 计算机毕设(附源码)JAVA-SSM基于Web学术会议投稿管理系统
  6. TCPIP卷一(1):二层封装与路由器转发数据过程
  7. 打造一款自己的XCode
  8. 【拓展】1324- 服务端渲染SSR及实现原理
  9. art.dialog
  10. git pull时产生'Merge branch 'master' of...问题