GridCell.h
上传用户:jzscgs158
上传日期:2022-05-25
资源大小:8709k
文件大小:6k
- /////////////////////////////////////////////////////////////////////////////
- // GridCell.h : header file
- //
- // MFC Grid Control - Grid cell class header file
- //
- // Written by Chris Maunder <cmaunder@mail.com>
- // Copyright (c) 1998-2000. 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 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("") : 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_)