From bdf0dc4cb183d3fec40e1d51b3bb94b7e53d0a55 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期日, 04 一月 2026 10:45:07 +0800
Subject: [PATCH] 1.修复报文字段差异风险: S1F3:项目用 getSubItemU4(0) 取 SVID;日志里有 U2 的情况,可能导致解析失败后回退成 SV=0。 S6F11:项目发送 DATAID(U4) + CEID(U4);日志样例里第一个字段是 U2,可能存在类型/字段定义不一致。
---
SourceCode/Bond/Servo/JobSlotGrid.h | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/JobSlotGrid.h b/SourceCode/Bond/Servo/JobSlotGrid.h
index f904aea..c00dea9 100644
--- a/SourceCode/Bond/Servo/JobSlotGrid.h
+++ b/SourceCode/Bond/Servo/JobSlotGrid.h
@@ -1,6 +1,9 @@
#pragma once
#include <afxwin.h>
#include <vector>
+#include <functional>
+
+using SlotClickCallback = std::function<void(int nRow, int nCol)>;
class CJobSlotGrid : public CWnd
{
@@ -16,15 +19,24 @@
void SetSlotText(int nRow, int nCol, const CString& strText);
void SetTextFont(const CString& strFontName, int nPointSize);
void ClearAll();
+ void SetSlotClickable(int nRow, int nCol, bool bClickable);
+ bool IsSlotClickable(int nRow, int nCol) const;
+ void SetSlotClickCallback(SlotClickCallback fnCallback);
protected:
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
+ afx_msg void OnMouseMove(UINT nFlags, CPoint point);
+ afx_msg void OnMouseLeave();
+ afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
+ afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
private:
int m_nRows;
int m_nCols;
+ bool m_bLButtonDown = false; // 鼠标是否按下
+ CPoint m_ptHover{ -1, -1 }; // 当前悬停的 cell 索引(row, col)
CFont m_fontText;
COLORREF m_colorHasJob;
COLORREF m_colorNoJob;
@@ -32,6 +44,8 @@
CBrush m_brushNoJob;
std::vector<std::vector<bool>> m_vSlotStatus;
std::vector<std::vector<CString>> m_vSlotText;
+ std::vector<std::vector<bool>> m_vSlotClickable;
+ SlotClickCallback m_fnSlotClickCallback;
void DrawGrid(CDC* pDC);
};
\ No newline at end of file
--
Gitblit v1.9.3