当前位置: 首页 > news >正文

【44】MFC入门到精通——MFC 通过Button按钮添加控件变量实现:按下 按钮变色 (比如开关 打开关闭状态) MFC更改button控颜色

文章目录

  • 1 按下button 改变状态颜色
    • 1.1 为Button按钮添加控件变量
    • 2.2 在需要的地方更改控件的颜色
    • 1.3 使用实例

1 按下button 改变状态颜色

button按下 根据按钮状态变色,比如开关打开 绿色,再按一下开关关闭 灰色

1.1 为Button按钮添加控件变量

为Button按钮添加控件变量
类别 控件 名称m_button_ComOpenStatus 变量类型 CMFCButton

在这里插入图片描述
添加成功后
在这里插入图片描述

在这里插入图片描述

2.2 在需要的地方更改控件的颜色

例如

void CSerialPortDlg::OnBnClickedOpencomButton()
{//这两行代码解决SetFaceColor显示不出来颜色问题m_button_ComOpenStatus.m_bTransparent = FALSE;m_button_ComOpenStatus.m_bDontUseWinXPTheme = TRUE;//消除黑圈m_button_ComOpenStatus.m_bDrawFocus = FALSE;//消除边框m_button_ComOpenStatus.m_nFlatStyle = CMFCButton::BUTTONSTYLE_NOBORDERS;//设置颜色m_button_ComOpenStatus.SetFaceColor(RGB(255, 0, 0), true);}

1.3 使用实例

串口状态显示:

串口关闭状态下,显示灰色,打开串口
串口打开状态下,显示绿色,关闭串口

//串口状态显示
void CSerialPortDlg::OnBnClickedOpencomButton()
{// TODO: 在此添加控件通知处理程序代码//设置按钮颜色//这两行代码解决SetFaceColor显示不出来颜色问题m_button_ComOpenStatus.m_bTransparent = FALSE;m_button_ComOpenStatus.m_bDontUseWinXPTheme = TRUE;//消除黑圈//m_button_ComOpenStatus.m_bDrawFocus = FALSE;//消除边框m_button_ComOpenStatus.m_nFlatStyle = CMFCButton::BUTTONSTYLE_NOBORDERS;//设置颜色//m_button_ComOpenStatus.SetFaceColor(RGB(0, 255, 0), true);m_COMStatu = !m_COMStatu;if (!m_COMStatu) {//串口关闭状态下,显示灰色,打开串口m_button_ComOpenStatus.SetFaceColor(RGB(225, 225, 225), true);//GetDlgItem(IDC_PORTisOPEN_STATIC)->SetWindowText(_T(" 已关闭"));m_button_ComOpenStatus.SetWindowTextW(_T("打开串口"));}else {//串口打开状态下,显示绿色,关闭串口m_button_ComOpenStatus.SetFaceColor(RGB(0, 255, 0), true);//GetDlgItem(IDC_PORTisOPEN_STATIC)->SetWindowText(_T(" 已打开"));m_button_ComOpenStatus.SetWindowTextW(_T("关闭串口"));}OnCbnSelchangeComboCom();DisplayStatus();return;
}

初始状态

在这里插入图片描述

串口打开状态下,显示绿色,关闭串口

在这里插入图片描述

串口关闭状态下,显示灰色,打开串口

在这里插入图片描述

http://www.dtcms.com/a/284537.html

相关文章:

  • Git简介与特点:从Linux到分布式版本控制的革命
  • 找不到或无法加载主类 org.gradle.wrapper.GradleWrapperMain
  • Linux Swap区深度解析:为何禁用?何时需要?
  • 【Java EE初阶 --- 网络原理】网络编程
  • Vue3 + WebSocket
  • 基于现代R语言【Tidyverse、Tidymodel】的机器学习方法
  • 3.2 函数参数与返回值
  • .vscode 扩展配置
  • 浅析网络安全面临的主要威胁类型及对应防护措施
  • 【C++指南】C++ list容器完全解读(四):反向迭代器的巧妙实现
  • 如何做好DNA-SIP?
  • 【41】MFC入门到精通——MFC中 GetLBText()、GetWindowText()、SetWindowText区别
  • 扭蛋机小程序开发:开启线上娱乐新风尚
  • 分布式光伏发电系统中的“四可”指的是什么?
  • 教资科三【信息技术】— 学科知识: 第一章(信息技术基础)
  • 基于springboot+vue+mysql技术的实验室管理系统(源码+论文)
  • 044_设计模式入门(创建型 / 结构型 / 行为型)
  • 【解决方案】鸿蒙 / 矿鸿系统 Shell 无故退出问题(息屏导致)详解
  • Spatial Frequency Modulation for Semantic Segmentation。针对图像下采样造成信息丢失问题的解决思路
  • 深入理解 Spring Boot Starter 的生成机制
  • tcp/udp调试工具
  • Linux内核网络栈深度剖析:inet_connection_sock.c的服务器端套接字管理
  • LINUX例行性工作(计划任务)实验操作 ---at和crontab以及系统级别的计划任务
  • springboot跨域问题 和 401
  • 当下主流摄像头及其核心参数详解
  • 不同场景下git指令的搭配
  • pycharm回车、删除、方向键和快捷键等不能使用原因
  • TRAE Agent 在 SWE-bench Verified 上得分 75.2%,并已开源
  • opencv、torch、torchvision、tensorflow的区别
  • Linux717 SWAP扩容;逻辑卷条带化