darker
2025-02-15 28973fbd9bda0787d04ee19c5da20e4689381299
1. CServoGraph类添加修改box颜色
2. CServoDlg添加设备状态,并修改box颜色
已修改4个文件
58 ■■■■■ 文件已修改
SourceCode/Bond/Servo/ServoDlg.cpp 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoDlg.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoGraph.cpp 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoGraph.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -645,6 +645,38 @@
    Invalidate();
}
void CServoDlg::UpdateDeviceStatus(int id, DeviceStatus status)
{
    // 根据状态设置颜色
    COLORREF newBackgroundColor;
    COLORREF newFrameColor1;
    COLORREF newFrameColor2;
    switch (status) {
    case Online:
        newBackgroundColor = RGB(255, 0, 0);
        newFrameColor1 = RGB(22, 22, 22);
        newFrameColor2 = RGB(255, 127, 39);
        break;
    case Offline:
        newBackgroundColor = RGB(0, 255, 0);
        newFrameColor1 = RGB(22, 22, 22);
        newFrameColor2 = RGB(255, 127, 39);
        break;
    default:
        newBackgroundColor = RGB(255, 255, 255); // 默认白色背景
        newFrameColor1 = RGB(0, 0, 0);           // 默认黑色框架1
        newFrameColor2 = RGB(0, 0, 0);           // 默认黑色框架2
        break;
    }
    m_pGraph->UpdateIndicateBox1Colors(id, newBackgroundColor, newFrameColor1, newFrameColor2);
    // 刷新界面
    Invalidate();
    UpdateWindow();
}
void CServoDlg::OnSize(UINT nType, int cx, int cy)
{
    CDialogEx::OnSize(nType, cx, cy);
SourceCode/Bond/Servo/ServoDlg.h
@@ -8,6 +8,10 @@
#include "LogDlg.h"
#include "TerminalDisplayDlg.h"
enum DeviceStatus {
    Online,       // 在线
    Offline,      // 离线
};
// CServoDlg 对话框
class CServoDlg : public CDialogEx
@@ -26,6 +30,7 @@
    void UpdateLogBtn();
    void UpdateRobotPosition(float percentage);
    void RotateRobot(float angleInDegrees);
    void UpdateDeviceStatus(int id, DeviceStatus status);
private:
SourceCode/Bond/Servo/ServoGraph.cpp
@@ -634,6 +634,25 @@
    }
}
void CServoGraph::UpdateIndicateBox1Colors(int id, COLORREF newBackgroundColor, COLORREF newFrameColor1, COLORREF newFrameColor2)
{
    INDICATEBOX* pIndicateBox = GetIndicateBox(id);
    if (pIndicateBox != nullptr) {
        pIndicateBox->box1BackgroundColor = newBackgroundColor;
        pIndicateBox->box1FrameColor[0] = newFrameColor1;
        pIndicateBox->box1FrameColor[1] = newFrameColor2;
    }
}
void CServoGraph::UpdateIndicateBox2Colors(int id, COLORREF newBackgroundColor, COLORREF newFrameColor)
{
    INDICATEBOX* pIndicateBox = GetIndicateBox(id);
    if (pIndicateBox != nullptr) {
        pIndicateBox->box2BackgroundColor = newBackgroundColor;
        pIndicateBox->box2FrameColor = newFrameColor;
    }
}
void CServoGraph::DrawImage(HDC hMemDC, IMAGE& item)
{
    // 载入BMP
SourceCode/Bond/Servo/ServoGraph.h
@@ -170,6 +170,8 @@
    void UpdateImageCoordinates(int id, int newX, int newY);
    void UpdateIndicateBoxCoordinates(int id, int newX, int newY);
    void UpdateImageAngle(int id, float angle);
    void UpdateIndicateBox1Colors(int id, COLORREF newBackgroundColor, COLORREF newFrameColor1, COLORREF newFrameColor2);
    void UpdateIndicateBox2Colors(int id, COLORREF newBackgroundColor, COLORREF newFrameColor);
private:
    void DrawImage(HDC hMemDC, IMAGE& item);