From 863f21995955fb3e9aa471430218967d4e642c27 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 29 五月 2025 16:11:24 +0800
Subject: [PATCH] Merge branch 'liuyang'
---
SourceCode/Bond/Servo/GridControl/GridCell.h | 143 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 143 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/GridControl/GridCell.h b/SourceCode/Bond/Servo/GridControl/GridCell.h
new file mode 100644
index 0000000..11664fd
--- /dev/null
+++ b/SourceCode/Bond/Servo/GridControl/GridCell.h
@@ -0,0 +1,143 @@
+/////////////////////////////////////////////////////////////////////////////
+// GridCell.h : header file
+//
+// MFC Grid Control - Grid cell class header file
+//
+// Written by Chris Maunder <chris@codeproject.com>
+// Copyright (c) 1998-2005. All Rights Reserved.
+//
+// This code may be used in compiled form in any way you desire. This
+// file may be redistributed unmodified by any means PROVIDING it is
+// not sold for profit without the authors written consent, and
+// providing that this notice and the authors name and all copyright
+// notices remains intact.
+//
+// An email letting me know how you are using it would be nice as well.
+//
+// This file is provided "as is" with no expressed or implied warranty.
+// The author accepts no liability for any damage/loss of business that
+// this product may cause.
+//
+// For use with CGridCtrl v2.20+
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)
+#define AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_
+
+#if _MSC_VER >= 1000
+#pragma once
+#endif // _MSC_VER >= 1000
+
+class CGridCtrl;
+#include "GridCellBase.h"
+
+// Each cell contains one of these. Fields "row" and "column" are not stored since we
+// will usually have acces to them in other ways, and they are an extra 8 bytes per
+// cell that is probably unnecessary.
+
+class CGridCell : public CGridCellBase
+{
+ friend class CGridCtrl;
+ DECLARE_DYNCREATE(CGridCell)
+
+// Construction/Destruction
+public:
+ CGridCell();
+ virtual ~CGridCell();
+
+// Attributes
+public:
+ void operator=(const CGridCell& cell);
+
+ virtual void SetText(LPCTSTR szText) { m_strText = szText; }
+ virtual void SetImage(int nImage) { m_nImage = nImage; }
+ virtual void SetData(LPARAM lParam) { m_lParam = lParam; }
+ virtual void SetGrid(CGridCtrl* pGrid) { m_pGrid = pGrid; }
+ // virtual void SetState(const DWORD nState); - use base class version
+ virtual void SetFormat(DWORD nFormat) { m_nFormat = nFormat; }
+ virtual void SetTextClr(COLORREF clr) { m_crFgClr = clr; }
+ virtual void SetBackClr(COLORREF clr) { m_crBkClr = clr; }
+ virtual void SetFont(const LOGFONT* plf);
+ virtual void SetMargin(UINT nMargin) { m_nMargin = nMargin; }
+ virtual CWnd* GetEditWnd() const { return m_pEditWnd; }
+ virtual void SetCoords(int /*nRow*/, int /*nCol*/) {} // don't need to know the row and
+ // column for base implementation
+
+ virtual LPCTSTR GetText() const { return (m_strText.IsEmpty())? _T("") : LPCTSTR(m_strText); }
+ virtual int GetImage() const { return m_nImage; }
+ virtual LPARAM GetData() const { return m_lParam; }
+ virtual CGridCtrl* GetGrid() const { return m_pGrid; }
+ // virtual DWORD GetState() const - use base class
+ virtual DWORD GetFormat() const;
+ virtual COLORREF GetTextClr() const { return m_crFgClr; } // TODO: change to use default cell
+ virtual COLORREF GetBackClr() const { return m_crBkClr; }
+ virtual LOGFONT* GetFont() const;
+ virtual CFont* GetFontObject() const;
+ virtual UINT GetMargin() const;
+
+ virtual BOOL IsEditing() const { return m_bEditing; }
+ virtual BOOL IsDefaultFont() const { return (m_plfFont == NULL); }
+ virtual void Reset();
+
+// editing cells
+public:
+ virtual BOOL Edit(int nRow, int nCol, CRect rect, CPoint point, UINT nID, UINT nChar);
+ virtual void EndEdit();
+protected:
+ virtual void OnEndEdit();
+
+protected:
+ CString m_strText; // Cell text (or binary data if you wish...)
+ LPARAM m_lParam; // 32-bit value to associate with item
+ int m_nImage; // Index of the list view item抯 icon
+ DWORD m_nFormat;
+ COLORREF m_crFgClr;
+ COLORREF m_crBkClr;
+ LOGFONT* m_plfFont;
+ UINT m_nMargin;
+
+ BOOL m_bEditing; // Cell being edited?
+
+ CGridCtrl* m_pGrid; // Parent grid control
+ CWnd* m_pEditWnd;
+};
+
+// This class is for storing grid default values. It's a little heavy weight, so
+// don't use it in bulk
+class CGridDefaultCell : public CGridCell
+{
+ DECLARE_DYNCREATE(CGridDefaultCell)
+
+// Construction/Destruction
+public:
+ CGridDefaultCell();
+ virtual ~CGridDefaultCell();
+
+public:
+ virtual DWORD GetStyle() const { return m_dwStyle; }
+ virtual void SetStyle(DWORD dwStyle) { m_dwStyle = dwStyle; }
+ virtual int GetWidth() const { return m_Size.cx; }
+ virtual int GetHeight() const { return m_Size.cy; }
+ virtual void SetWidth(int nWidth) { m_Size.cx = nWidth; }
+ virtual void SetHeight(int nHeight) { m_Size.cy = nHeight; }
+
+ // Disable these properties
+ virtual void SetData(LPARAM /*lParam*/) { ASSERT(FALSE); }
+ virtual void SetState(DWORD /*nState*/) { ASSERT(FALSE); }
+ virtual DWORD GetState() const { return CGridCell::GetState()|GVIS_READONLY; }
+ virtual void SetCoords( int /*row*/, int /*col*/) { /*ASSERT(FALSE);*/ }
+ virtual void SetFont(const LOGFONT* /*plf*/);
+ virtual LOGFONT* GetFont() const;
+ virtual CFont* GetFontObject() const;
+
+protected:
+ CSize m_Size; // Default Size
+ CFont m_Font; // Cached font
+ DWORD m_dwStyle; // Cell Style - unused
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)
--
Gitblit v1.9.3