From 5a66d26a2899a2450a50f00d09c728ae151715be Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 23 七月 2025 11:19:42 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/CCustomCheckBox.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CCustomCheckBox.cpp b/SourceCode/Bond/Servo/CCustomCheckBox.cpp
new file mode 100644
index 0000000..56a4612
--- /dev/null
+++ b/SourceCode/Bond/Servo/CCustomCheckBox.cpp
@@ -0,0 +1,56 @@
+#include "stdafx.h"
+#include "CCustomCheckBox.h"
+
+
+CCustomCheckBox::CCustomCheckBox()
+ : m_bgColor(RGB(255, 255, 255)), m_textColor(RGB(0, 0, 0))
+{
+ m_brush.CreateSolidBrush(m_bgColor);
+}
+
+CCustomCheckBox::~CCustomCheckBox()
+{
+
+}
+
+void CCustomCheckBox::SetBackgroundColor(COLORREF color)
+{
+ m_bgColor = color;
+ if (m_brush.GetSafeHandle())
+ m_brush.DeleteObject();
+ m_brush.CreateSolidBrush(m_bgColor);
+ Invalidate();
+}
+
+void CCustomCheckBox::SetTextColor(COLORREF color)
+{
+ m_textColor = color;
+ Invalidate();
+}
+
+void CCustomCheckBox::SetNotifyHwnd(HWND hWnd)
+{
+ m_hNotifyWnd = hWnd;
+}
+
+void CCustomCheckBox::OnClicked()
+{
+ BOOL bChecked = (GetCheck() == BST_CHECKED);
+
+ // 你可以定义自己的自定义消息
+ if (m_hNotifyWnd && ::IsWindow(m_hNotifyWnd)) {
+ ::PostMessage(m_hNotifyWnd, WM_CHECKBOX_STATE_CHANGED, GetDlgCtrlID(), bChecked);
+ }
+}
+
+BEGIN_MESSAGE_MAP(CCustomCheckBox, CButton)
+ ON_WM_CTLCOLOR_REFLECT()
+ ON_CONTROL_REFLECT(BN_CLICKED, &CCustomCheckBox::OnClicked)
+END_MESSAGE_MAP()
+
+HBRUSH CCustomCheckBox::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
+{
+ pDC->SetBkMode(TRANSPARENT);
+ pDC->SetTextColor(m_textColor);
+ return (HBRUSH)m_brush.GetSafeHandle();
+}
\ No newline at end of file
--
Gitblit v1.9.3