From af5c7a6ce19dd295701348f5f7eb6ce53c91826a Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期四, 12 二月 2026 10:58:44 +0800
Subject: [PATCH] 1.工创建PJ, 然后生产,当时有3片料,PJ只选了两片。其中两片配对生产了,按道理就不应该去取第三片了,但实际上它还去取了。修复此Bug
---
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