From 260b30211b44fea725a5a6fb5d72c1d0581eccbb Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期四, 11 十二月 2025 17:22:08 +0800
Subject: [PATCH] 1.状态栏实时显示CIM连接状态;

---
 SourceCode/Bond/Servo/CMyStatusbar.h   |    2 ++
 SourceCode/Bond/Servo/CMyStatusbar.cpp |   22 +++++++++++++++++++++-
 SourceCode/Bond/Servo/ServoDlg.cpp     |   12 ++++++------
 SourceCode/Bond/Servo/Common.h         |    2 ++
 4 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMyStatusbar.cpp b/SourceCode/Bond/Servo/CMyStatusbar.cpp
index 589a8cc..f38821f 100644
--- a/SourceCode/Bond/Servo/CMyStatusbar.cpp
+++ b/SourceCode/Bond/Servo/CMyStatusbar.cpp
@@ -80,6 +80,24 @@
 	SetDlgItemText(IDC_BUTTON_CIM, pszText);
 }
 
+void CMyStatusbar::setCurTaskBtnColors(COLORREF face, COLORREF frame, COLORREF text)
+{
+	m_btnCurTask.SetFaceColor(face);
+	m_btnCurTask.SetFrameColor(frame);
+	m_btnCurTask.SetTextColor(text);
+	Invalidate();
+	UpdateWindow();
+}
+
+void CMyStatusbar::setCimBtnColors(COLORREF face, COLORREF frame, COLORREF text)
+{
+	m_btnCim.SetFaceColor(face);
+	m_btnCim.SetFrameColor(frame);
+	m_btnCim.SetTextColor(text);
+	Invalidate();
+	UpdateWindow();
+}
+
 BOOL CMyStatusbar::OnInitDialog()
 {
 	CDialogEx::OnInitDialog();
@@ -91,12 +109,14 @@
 	m_btnCurTask.SetFrameColor(m_crBkgnd);
 	m_btnCurTask.SetFrameColor(BS_HOVER, RGB(218, 218, 218));
 	m_btnCurTask.SetFrameColor(BS_PRESS, RGB(168, 168, 168));
+	m_btnCurTask.SetTextColor(m_crForeground);
 
 	m_btnCim.SubclassDlgItem(IDC_BUTTON_CIM, this);
 	m_btnCim.SetFaceColor(m_crBkgnd);
 	m_btnCim.SetFrameColor(m_crBkgnd);
 	m_btnCim.SetFrameColor(BS_HOVER, RGB(218, 218, 218));
 	m_btnCim.SetFrameColor(BS_PRESS, RGB(168, 168, 168));
+	m_btnCim.SetTextColor(m_crForeground);
 
 	return TRUE;  // return TRUE unless you set the focus to a control
 				  // 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
@@ -192,4 +212,4 @@
 	pItem->GetClientRect(rcItem);
 	pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
 	x += rcItem.Width();
-}
\ No newline at end of file
+}
diff --git a/SourceCode/Bond/Servo/CMyStatusbar.h b/SourceCode/Bond/Servo/CMyStatusbar.h
index 4afaaa4..b1fdfa8 100644
--- a/SourceCode/Bond/Servo/CMyStatusbar.h
+++ b/SourceCode/Bond/Servo/CMyStatusbar.h
@@ -22,6 +22,8 @@
 	void setRunTimeText(const char* pszText);
 	void setCurTaskBtnText(const char* pszText);
 	void setCimBtnText(const char* pszText);
+	void setCurTaskBtnColors(COLORREF face, COLORREF frame, COLORREF text);
+	void setCimBtnColors(COLORREF face, COLORREF frame, COLORREF text);
 
 private:
 	void Resize();
diff --git a/SourceCode/Bond/Servo/Common.h b/SourceCode/Bond/Servo/Common.h
index 3031752..a491039 100644
--- a/SourceCode/Bond/Servo/Common.h
+++ b/SourceCode/Bond/Servo/Common.h
@@ -46,6 +46,8 @@
 #define STATUSBAR_BK_STARTING				RGB(58, 127, 78)
 #define STATUSBAR_BK_RUNNING				RGB(34, 177, 76)
 #define STATUSBAR_BK_ALARM					RGB(255, 127, 39)
+#define CIM_STATUS_BK_SELECTED				STATUSBAR_BK_RUNNING
+#define CIM_STATUS_BK_DISCONNECTED			STATUSBAR_BK_NORMAL
 
 /* LOG BTN */
 #define BTN_LOG_FRAME_NORMAL			RGB(88, 88, 88)
diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index c886f66..c3d42da 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -306,18 +306,18 @@
 
 				if (STATE::NOT_CONNECTED == state) {
 					m_pMyStatusbar->setCimBtnText("Disconnected");
-					//m_labelPassiveState.setBackground(DISCONNECTED_BACKGROUND);
-					//m_labelPassiveState.setForeground(DISCONNECTED_FOREGROUND, TRUE);
+					m_pMyStatusbar->setCimBtnColors(
+						CIM_STATUS_BK_DISCONNECTED, CIM_STATUS_BK_DISCONNECTED, RGB(0, 0, 0));
 				}
 				else if (STATE::NOT_SELECTED == state) {
 					m_pMyStatusbar->setCimBtnText("Not Selected");
-					//m_labelPassiveState.setBackground(NOT_SELECTED_BACKGROUND);
-					//m_labelPassiveState.setForeground(NOT_SELECTED_FOREGROUND, TRUE);
+					m_pMyStatusbar->setCimBtnColors(
+						CIM_STATUS_BK_DISCONNECTED, CIM_STATUS_BK_DISCONNECTED, RGB(0, 0, 0));
 				}
 				else if (STATE::SELECTED == state) {
 					m_pMyStatusbar->setCimBtnText("Selected");
-					//m_labelPassiveState.setBackground(SELECTED_BACKGROUND);
-					//m_labelPassiveState.setForeground(SELECTED_FOREGROUND, TRUE);
+					m_pMyStatusbar->setCimBtnColors(
+						CIM_STATUS_BK_SELECTED, CIM_STATUS_BK_SELECTED, RGB(0, 0, 0));
 				}
 			}
 			pAny->release();

--
Gitblit v1.9.3