From bfe14e41fa5b07771d78af4511ba18d706bc23cc Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 28 七月 2025 17:07:52 +0800
Subject: [PATCH] 1.Spooling Config功能EAP模拟测试;

---
 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