From bc7f1c4e028e69be51079b59dae4ae5c4d43f5bb Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期六, 31 一月 2026 21:54:56 +0800
Subject: [PATCH] 1.状态指示图,目前灰色表示掉线,绿色表示在线。增加Slot的小点表示有没有料,及加工状态 。 2.增加图示

---
 SourceCode/Bond/Servo/CMyStatusbar.cpp |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMyStatusbar.cpp b/SourceCode/Bond/Servo/CMyStatusbar.cpp
index 3432829..7aa389a 100644
--- a/SourceCode/Bond/Servo/CMyStatusbar.cpp
+++ b/SourceCode/Bond/Servo/CMyStatusbar.cpp
@@ -70,9 +70,37 @@
 	SetDlgItemText(IDC_LABEL_RUNTIME, pszText);
 }
 
+void CMyStatusbar::setJobText(const char* pszText)
+{
+	SetDlgItemText(IDC_LABEL_JOBSTATE, pszText);
+}
+
 void CMyStatusbar::setCurTaskBtnText(const char* pszText)
 {
 	SetDlgItemText(IDC_BUTTON_ROBOTTASK, pszText);
+}
+
+void CMyStatusbar::setCimBtnText(const char* pszText)
+{
+	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()
@@ -86,7 +114,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
@@ -116,6 +151,27 @@
 	CDialogEx::OnDestroy();
 
 	// TODO: 鍦ㄦ澶勬坊鍔犳秷鎭鐞嗙▼搴忎唬鐮�
+}
+
+BOOL CMyStatusbar::OnCommand(WPARAM wParam, LPARAM lParam)
+{
+	CWnd* pItem;
+	CRect rcItem;
+
+	switch (LOWORD(wParam)) {
+	case IDC_BUTTON_ROBOTTASK:
+		pItem = GetDlgItem(IDC_BUTTON_ROBOTTASK);
+		pItem->GetWindowRect(rcItem);
+		GetParent()->SendMessage(ID_MSG_STATUSBAR_BTN_CLICKED, rcItem.left, LOWORD(wParam));
+		break;
+	case IDC_BUTTON_CIM:
+		pItem = GetDlgItem(IDC_BUTTON_CIM);
+		pItem->GetWindowRect(rcItem);
+		GetParent()->SendMessage(ID_MSG_STATUSBAR_BTN_CLICKED, rcItem.left, LOWORD(wParam));
+		break;
+	}
+
+	return CDialogEx::OnCommand(wParam, lParam);
 }
 
 void CMyStatusbar::OnSize(UINT nType, int cx, int cy)
@@ -149,4 +205,24 @@
 	pItem->GetClientRect(rcItem);
 	pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
 	x += rcItem.Width();
+
+	x += 8;
+	pItem = GetDlgItem(IDC_LABEL_CIM);
+	pItem->GetClientRect(rcItem);
+	pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
+	x += rcItem.Width();
+
+	x += 8;
+	pItem = GetDlgItem(IDC_BUTTON_CIM);
+	pItem->GetClientRect(rcItem);
+	pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
+	x += rcItem.Width();
+
+	x += 8;
+	pItem = GetDlgItem(IDC_LABEL_JOBSTATE);
+	if (pItem != nullptr) {
+		pItem->GetClientRect(rcItem);
+		pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
+		x += rcItem.Width();
+	}
 }

--
Gitblit v1.9.3