1. CServoGraph类添加修改box颜色
2. CServoDlg添加设备状态,并修改box颜色
| | |
| | | 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); |
| | |
| | | #include "LogDlg.h" |
| | | #include "TerminalDisplayDlg.h" |
| | | |
| | | enum DeviceStatus { |
| | | Online, // 在线 |
| | | Offline, // 离线 |
| | | }; |
| | | |
| | | // CServoDlg 对话框 |
| | | class CServoDlg : public CDialogEx |
| | |
| | | void UpdateLogBtn(); |
| | | void UpdateRobotPosition(float percentage); |
| | | void RotateRobot(float angleInDegrees); |
| | | void UpdateDeviceStatus(int id, DeviceStatus status); |
| | | |
| | | |
| | | private: |
| | |
| | | } |
| | | } |
| | | |
| | | 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 |
| | |
| | | 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); |