在MFC的Dialog工程中生成一个CStatic的自定义类,类名例如为:CColorStatic

定义必要的变量:

protected:COLORREF m_crText;         // 字体颜色COLORREF m_crBackColor;              // 背景颜色HBRUSH    m_hBrush;          // 画刷LOGFONT     m_lf;              // 字体大小CFont     m_font;            // 字体bool   m_bTran;            // 是否透明

重载CColorStatic类中的=WM_CTLCOLOR事件,注意有=的,不是WM_CTLCOLOR事件

HBRUSH CColorStatic::CtlColor(CDC* pDC, UINT nCtlColor)
{// TODO:  在此更改 DC 的任何属性// TODO:  如果不应调用父级的处理程序,则返回非 null 画笔if (CTLCOLOR_STATIC == nCtlColor){pDC->SelectObject(&m_font);pDC->SetTextColor(m_crText);pDC->SetBkColor(m_crBackColor);if (m_bTran == true)pDC->SetBkMode(TRANSPARENT);}return m_hBrush;

另外添加一些接口类函数

void CColorStatic::SetTextColor( COLORREF crText )
{m_crText = crText;RedrawWindow();
}void CColorStatic::SetFontSize(int nSize)
{nSize *= -1;m_lf.lfHeight = nSize;m_font.DeleteObject();m_font.CreateFontIndirect(&m_lf);RedrawWindow();
}void CColorStatic::SetBackColor(COLORREF crBackColor)
{m_crBackColor = crBackColor;RedrawWindow();
}void CColorStatic::SetTransparent(bool bTran)
{m_bTran = bTran;RedrawWindow();
}

至此CColorStatic类就建好了。

记得添加CColorStatic的头文件。

菜单栏中添加一个菜单项,并为其关联成员变量m_static1,然后添加事件处理程序。编辑代码如下:

void CLXTDlg::OnStatic32790()

{

// TODO: 在此添加命令处理程序代码

m_static1.SetTransparent(FALSE);

m_static1.SetTextColor(RGB(0,255,255));

m_static1.SetBackColor(RGB(0,255,0));

m_static1.SetFontSize(15);

}

在给静态文本控件关联变量时,我在类向导中找不到其ID,然后把其ID从IDC_STATIC改为IDC_STATIC1,就出现在了类向导里。

其实也可不用类向导,自己手动关联。

手动为控件关联成员变量的方法:

例如:为ID = IDC_STATIC1的静态文本控件关联成员变量

1. 在.h中声明:

CColorStatic m_static1; // 声明变量,注意这里的 CColorStatic是上面自定义的类哦。

2. 在.cpp中进行关联:

void CLXTDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Control(pDX, IDC_STATIC1, m_static1);// 关联控件和变量

}

MFC开发IM-第五篇、MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法相关推荐

  1. VS2010 MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法...

    在MFC的Dialog工程中生成一个CStatic的自定义类,类名例如为:CColorStatic 定义必要的变量: protected:COLORREF m_crText; // 字体颜色COLOR ...

  2. 如何在Visual Studio中调整代码字体的大小和颜色

    1. 找到并点击[设置]按钮 2. 点击[选项] 3. 在[环境]中找到[字体和颜色],然后就可以自己调整了. 

  3. MFC开发IM-第十五篇、打包的MFC程序别人无法启动的原因

    使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC          第一种顾名思义.        ...

  4. AD16原理图.schdot中批量修改标签中的文本字体、大小、颜色

    1)使用鼠标左键区域选中需要修改的文本,或按住shift键使用鼠标左键选择分布在图中各处的需要修改的文本 2)按住shift键,鼠标左键双击选中的任一文本,弹出如下的SCH Inspector弹窗 3 ...

  5. WPF中GDI+图形图像的绘制:(一)绘制文本——动态设置字体、大小、颜色

    GDI+(Graphics Device Interface Plus图形设备接口加)是.NET框架的重要组成部分,负责在屏幕和打印机上绘制图形图像和显示信息.GDI+不但在功能上比GDI 要强大很多 ...

  6. Pycharm设置开发模板/字体大小/背景颜色 - Python零基础入门教程

    目录 一.Pycharm 设置字体大小/风格 二.Pycharm 设置背景颜色 三.Pycharm 设置开发模板 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 > ...

  7. html自动切换body背景,html中怎么用body元素设置背景颜色

    html中怎么用body元素设置背景颜色 发布时间:2020-06-22 15:17:45 来源:亿速云 阅读:137 作者:Leah 这篇文章运用简单易懂的例子给大家介绍html中怎么用body元素 ...

  8. python类定义中、对象字符串的特殊方法是_python中自定义类对象json字符串化的方法_python json转字符串、...

    python中自定义类对象json字符串化的方法 1. 用 json 或者simplejson 就可以 2.定义转换函数: def convert_to_builtin_type(obj): prin ...

  9. js点击按钮改变字体大小并给他颜色_如何在Elementor中修改文本的字体、大小、颜色、样式...

    本文将介绍Elementor网页编辑器中如何修改文本的字体.大小.颜色和样式. 原文首发于:https://loyseo.com/how-to-change-font-size-color-famil ...

最新文章

  1. LL(1)预测分析表的构造
  2. shell脚本中使用top命令查看cpu或内存情况的技巧
  3. 如何构建一个成功的AI PoC(概念验证项目)
  4. [翻译] C# 3.0语言规范 收藏
  5. MongoDB常用语句
  6. 2009从知到行知识管理培训公开课最后一期
  7. 法拉第未来获得2.25亿美元债权及信托融资
  8. linux PHY驱动
  9. MyBatis学习(七)
  10. 麦吉尔学和ubc计算机专业,申请多伦多、UBC和麦吉尔三所大学建筑专业的作品集要求...
  11. 用python花猫_Python竟能画这么漂亮的花,帅呆了(代码分享)
  12. eclipse中import existing projects into workspace和open projects from file systems分别有什么用?
  13. IT各个层次角色与职责
  14. 10198_基于SSM的电影票预订系统
  15. 《Python编程 从入门到实践》第八章 ——函数习题
  16. C++哈希查找算法简单实现
  17. 小学数学开灯问题_三道简单的小学二年级的数学题,一遍过全对的还不到一半...
  18. 图片合并成PDF,两个PDF的合并
  19. 做音视频开发要掌握哪些知识?
  20. php h2数据库,H2数据库使用

热门文章

  1. HttpInvoker-----客户端实现
  2. String常见问题
  3. Android嵌入式安卓触摸屏|4418开发板平台
  4. leetcode - Minimum Depth of Binary Tree
  5. net2.0中使用Cookie保存中文出现乱码的解决方法
  6. 一步一步安装SQL Server 2008(附截图)
  7. java 基础知识面试题(持续更新),java基础面试笔试题
  8. 如果有人再问你 Java 的反射,把这篇文章扔给他
  9. SpringBoot整合Mybatis,并实现事务控制
  10. (转) shiro权限框架详解06-shiro与web项目整合(上)