From 829fe6c6bc33d53fda9c31fd45a37e1df87befff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 30 一月 2026 11:16:24 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/CMyStatusbar.cpp | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 113 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMyStatusbar.cpp b/SourceCode/Bond/Servo/CMyStatusbar.cpp
index d85b341..7aa389a 100644
--- a/SourceCode/Bond/Servo/CMyStatusbar.cpp
+++ b/SourceCode/Bond/Servo/CMyStatusbar.cpp
@@ -43,7 +43,15 @@
m_brBkgnd.DeleteObject();
}
+ m_crBkgnd = color;
m_brBkgnd.CreateSolidBrush(color);
+ m_btnCurTask.SetFaceColor(m_crBkgnd);
+ m_btnCurTask.SetFrameColor(m_crBkgnd);
+ m_btnCurTask.SetFrameColor(BS_HOVER, CColorTransfer::ApproximateColor(m_crBkgnd, 0.05));
+ m_btnCurTask.SetFrameColor(BS_PRESS, CColorTransfer::ApproximateColor(m_crBkgnd, 0.12));
+ m_btnCurTask.SetBkgndColor(BS_HOVER, CColorTransfer::ApproximateColor(m_crBkgnd, 0.05));
+ m_btnCurTask.SetBkgndColor(BS_PRESS, CColorTransfer::ApproximateColor(m_crBkgnd, 0.12));
+
Invalidate();
UpdateWindow();
}
@@ -51,6 +59,8 @@
void CMyStatusbar::setForegroundColor(COLORREF cr)
{
m_crForeground = cr;
+ m_btnCurTask.SetTextColor(m_crForeground);
+
Invalidate();
UpdateWindow();
}
@@ -60,11 +70,58 @@
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()
{
CDialogEx::OnInitDialog();
- // TODO: 鍦ㄦ娣诲姞棰濆鐨勫垵濮嬪寲
+
+ m_btnCurTask.SubclassDlgItem(IDC_BUTTON_ROBOTTASK, this);
+ // m_btnCurTask.SetIcon(hIcon1, hIcon1, 24);
+ m_btnCurTask.SetFaceColor(m_crBkgnd);
+ 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
@@ -96,6 +153,27 @@
// 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)
{
CDialogEx::OnSize(nType, cx, cy);
@@ -110,8 +188,41 @@
int x;
GetClientRect(&rcClient);
- x = 120;
+ x = 20;
pItem = GetDlgItem(IDC_LABEL_RUNTIME);
pItem->GetClientRect(rcItem);
pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
+ x += rcItem.Width();
+
+ x += 8;
+ pItem = GetDlgItem(IDC_LABEL_CUR_TASK_L);
+ pItem->GetClientRect(rcItem);
+ pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height());
+ x += rcItem.Width();
+
+ x += 8;
+ pItem = GetDlgItem(IDC_BUTTON_ROBOTTASK);
+ 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