VC++重绘CheckBox,方便直接可以用

embedded/2025/3/29 19:58:48/

记得关注! 

#include "stdafx.h"
#include "CCheckSK.h"

CCheckSK::CCheckSK()
{
    m_bCheck = FALSE;
    m_bMouseOver = FALSE;

    m_nLedSize = 15;

    //  set default color to green on ON and dark-green on OFF
    //m_colLedOn  = RGB(0, 255, 0);
    m_colLedOn  = RGB(255, 200, 119);
    //m_colLedOff = RGB(0, 127, 0);
    m_colLedOff = RGB(225, 225,225);

    m_hIconOn.hIcon  = NULL;
    m_hIconOff.hIcon = NULL;
    m_tooltip.Create (this);
}

CCheckSK::~CCheckSK()
{
}


BEGIN_MESSAGE_MAP(CCheckSK, CButton)
    //{{AFX_MSG_MAP(CCheckSK)
    ON_WM_MOUSEMOVE()
    ON_CONTROL_REFLECT(BN_CLICKED, OnClicked)
    //}}AFX_MSG_MAP
    ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
    ON_MESSAGE(BM_SETCHECK, OnSetCheck)
    ON_MESSAGE(BM_GETCHECK, OnGetCheck)
END_MESSAGE_MAP()


//  ===========================================================================
//  Set check status of control
//  ===========================================================================
void
CCheckSK::SetCheck(BOOL bCheck, BOOL bRepaint)
{
    m_bCheck = bCheck;

    if (bRepaint) Invalidate();
}

//  ===========================================================================
//  Return check status of control
//  ===========================================================================
BOOL
CCheckSK::GetCheck()
{
    return m_bCheck;
}

//  ===========================================================================
//  Set Icon from resource ID
//  ===========================================================================
DWORD
CCheckSK::SetIcon(int nIconOn, int nIconOff)
{
    HICON       hIconOn         = NULL;
    HICON       hIconOff        = NULL;
    HINSTANCE   hInstResource   = NULL;
    
    //  Find correct resource handle
    hInstResource = AfxFindResourceHandle ( MAKEINTRESOURCE(nIconOn), 
                                            RT_GROUP_ICON);
    
    //  Set icon when the mouse is IN the button
    hIconOn = ::LoadIcon(hInstResource, MAKEINTRESOURCE(nIconOn));
    
    hIconOff = ::LoadIcon(hInstResource, MAKEINTRESOURCE(nIconOff));
    
    return SetIcon(hIconOn, hIconOff);
}

//  ===========================================================================
//  Set Icon from file
//  ===================================================&


http://www.ppmy.cn/embedded/176703.html

相关文章

运用scipy库进行线性拟合

一、概述 此代码运用 Python 的numpy、matplotlib和scipy库,完成对带噪声线性数据的线性模型拟合与可视化。具体步骤为定义线性模型函数,生成带有噪声的线性数据,利用curve_fit函数进行数据拟合,最后借助matplotlib库将原始数据与…

Qt 隐式共享

隐性共享 Qt 中的许多 C 类都使用隐式数据共享,以最大限度地提高资源利用率并减少复制。隐式共享类在作为参数传递时既安全又高效,因为只传递指向数据的指针,只有在函数写入数据时才复制数据,即写时复制。 概述 共享类由指向共…

java+selenium(资源全备,打开已使用浏览器信息,保留用户信息)

javaselenium(资源全备,打开已使用浏览器信息,保留用户信息) 一、介绍 我的代码可以实现以下效果: 保留用户信息,好处:可以在登录好一个账号后还保留原来的token验证信息 使用javaselenium实现爬取vue元素内容&…

接口自动化框架篇:自定义异常日志封装!

在接口自动化测试中,异常日志是非常重要的一部分。通过记录和封装异常日志,我们可以更好地定位和解决接口问题,提高测试效率和可维护性。本文将介绍如何从零开始,详细规范地编写自定义异常日志封装的接口自动化框架。 1. 确定异常…

流影---开源网络流量分析平台(一)(小白超详细)

目录 流影介绍 一、技术架构与核心技术 二、核心功能与特性 流影部署 流影介绍 一、技术架构与核心技术 模块化引擎设计 流影采用四层模块化架构:流量探针(数据采集)、网络行为分析引擎(特征提取)、威胁检测引擎&…

mysql传统主从模式下,主从中断接续

现象描述 传统模式的mysql主从。 Slave因为大事务延迟巨大。从库重启前的记录位点在binlog:552,pos:471157766 Relaylog:629,pos:496188584 从库重启后binlog倒退到221 Relaylog反而到了1653 故障判断 …

C++学习之QT中HTTP正则表达式

目录 1.知识点概述 2.BASE64介绍 3.QT中BASE64的使用 4.正则表达式中的位置限定字符 5.修饰数量的特殊字符 6.正则表达式中的字符匹配 7.正则表达式例子 8.正则表达式网址介绍 9.QNETWORKACCESSMANAGER类使用介绍 10.QNETWORKREQUEST类的使用 11.QNETWORKREPLY类的使…

clamav服务器杀毒(Linux服务器断网状态下如何进行clamav安装、查杀)

ClamAV服务器杀毒(服务器断网状态也可以使用该方法) 服务器因为挖矿病毒入侵导致断网,进行离线的clamav安装并查杀 安装包下载网址:https://www.clamav.net/downloads 安装.deb,如果服务器处于断网状态,可以…