From bb13ecc602edb0247f65a1362135e4ef70a5a79f Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 06 六月 2025 13:50:15 +0800
Subject: [PATCH] Merge branch 'master' into clh
---
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