GridCell.h
上传用户:jzscgs158
上传日期:2022-05-25
资源大小:8709k
文件大小:6k
源码类别:

百货/超市行业

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // GridCell.h : header file
  3. //
  4. // MFC Grid Control - Grid cell class header file
  5. //
  6. // Written by Chris Maunder <cmaunder@mail.com>
  7. // Copyright (c) 1998-2000. All Rights Reserved.
  8. //
  9. // This code may be used in compiled form in any way you desire. This
  10. // file may be redistributed unmodified by any means PROVIDING it is 
  11. // not sold for profit without the authors written consent, and 
  12. // providing that this notice and the authors name and all copyright 
  13. // notices remains intact. 
  14. //
  15. // An email letting me know how you are using it would be nice as well. 
  16. //
  17. // This file is provided "as is" with no expressed or implied warranty.
  18. // The author accepts no liability for any damage/loss of business that
  19. // this product may cause.
  20. //
  21. // For use with CGridCtrl v2.20
  22. //
  23. //////////////////////////////////////////////////////////////////////
  24. #if !defined(AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)
  25. #define AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_
  26. #if _MSC_VER >= 1000
  27. #pragma once
  28. #endif // _MSC_VER >= 1000
  29. class CGridCtrl;
  30. #include "GridCellBase.h"
  31. // Each cell contains one of these. Fields "row" and "column" are not stored since we
  32. // will usually have acces to them in other ways, and they are an extra 8 bytes per
  33. // cell that is probably unnecessary.
  34. class CGridCell : public CGridCellBase
  35. {
  36.     friend class CGridCtrl;
  37.     DECLARE_DYNCREATE(CGridCell)
  38. // Construction/Destruction
  39. public:
  40.     CGridCell();
  41.     virtual ~CGridCell();
  42. // Attributes
  43. public:
  44.     void operator=(const CGridCell& cell);
  45.     virtual void SetText(LPCTSTR szText)        { m_strText = szText;  }                       
  46.     virtual void SetImage(int nImage)           { m_nImage = nImage;   }                        
  47.     virtual void SetData(LPARAM lParam)         { m_lParam = lParam;   }      
  48.     virtual void SetGrid(CGridCtrl* pGrid)      { m_pGrid = pGrid;     }                          
  49.     // virtual void SetState(const DWORD nState);  -  use base class version   
  50.     virtual void SetFormat(DWORD nFormat)       { m_nFormat = nFormat; }                      
  51.     virtual void SetTextClr(COLORREF clr)       { m_crFgClr = clr;     }                          
  52.     virtual void SetBackClr(COLORREF clr)       { m_crBkClr = clr;     }                          
  53.     virtual void SetFont(const LOGFONT* plf);
  54.     virtual void SetMargin(UINT nMargin)       { m_nMargin = nMargin; }
  55.     virtual void SetCoords( int /* nRow */, int /* nCol */) {}  // don't need to know the row and
  56.                                                                 // column for base implementation
  57.     virtual LPCTSTR     GetText() const             { return (m_strText.IsEmpty())? _T("") : m_strText; }
  58.     virtual int         GetImage() const            { return m_nImage;  }
  59.     virtual LPARAM      GetData() const             { return m_lParam;  }
  60.     virtual CGridCtrl*  GetGrid() const             { return m_pGrid;   }
  61.     // virtual DWORD    GetState() const - use base class
  62.     virtual DWORD       GetFormat() const;
  63.     virtual COLORREF    GetTextClr() const          { return m_crFgClr; } // TODO: change to use default cell
  64.     virtual COLORREF    GetBackClr() const          { return m_crBkClr; }
  65.     virtual LOGFONT*    GetFont() const;
  66.     virtual CFont*      GetFontObject() const;
  67.     virtual UINT        GetMargin() const;
  68.     virtual BOOL        IsEditing() const           { return m_bEditing; }
  69.     virtual BOOL        IsDefaultFont() const       { return (m_plfFont == NULL); }
  70.     virtual void        Reset();
  71. // editing cells
  72. public:
  73.     virtual BOOL Edit(int nRow, int nCol, CRect rect, CPoint point, UINT nID, UINT nChar);
  74.     virtual void EndEdit();
  75. protected:
  76.     virtual void OnEndEdit();
  77. protected:
  78.     CString    m_strText;      // Cell text (or binary data if you wish...)
  79.     LPARAM     m_lParam;       // 32-bit value to associate with item
  80.     int        m_nImage;       // Index of the list view item抯 icon
  81.     DWORD      m_nFormat;
  82.     COLORREF   m_crFgClr;
  83.     COLORREF   m_crBkClr;
  84.     LOGFONT*   m_plfFont;
  85.     UINT       m_nMargin;
  86.     BOOL       m_bEditing;     // Cell being edited?
  87.     CGridCtrl* m_pGrid;        // Parent grid control
  88.     CWnd*      m_pEditWnd;
  89. };
  90. // This class is for storing grid default values. It's a little heavy weight, so
  91. // don't use it in bulk 
  92. class CGridDefaultCell : public CGridCell
  93. {
  94.     DECLARE_DYNCREATE(CGridDefaultCell)
  95. // Construction/Destruction
  96. public:
  97.     CGridDefaultCell();
  98.     virtual ~CGridDefaultCell();
  99. public:
  100.     virtual DWORD GetStyle() const                      { return m_dwStyle;      }
  101.     virtual void  SetStyle(DWORD dwStyle)               { m_dwStyle = dwStyle;   }
  102.     virtual int   GetWidth() const                      { return m_Size.cx;      }
  103.     virtual int   GetHeight() const                     { return m_Size.cy;      }
  104.     virtual void  SetWidth(int nWidth)                  { m_Size.cx = nWidth;    }
  105.     virtual void  SetHeight(int nHeight)                { m_Size.cy = nHeight;   }
  106.     // Disable these properties
  107.     virtual void     SetData(LPARAM /*lParam*/)             { ASSERT(FALSE);         }      
  108.     virtual void     SetState(DWORD /*nState*/)             { ASSERT(FALSE);         }
  109.     virtual DWORD    GetState() const                       { return CGridCell::GetState()|GVIS_READONLY; }
  110.     virtual void     SetCoords( int /*row*/, int /*col*/)   { ASSERT(FALSE);         }
  111.     virtual void     SetFont(const LOGFONT* /*plf*/);
  112.     virtual LOGFONT* GetFont() const;   
  113.     virtual CFont*   GetFontObject() const;
  114. protected:
  115.     CSize m_Size;       // Default Size
  116.     CFont m_Font;       // Cached font
  117.     DWORD m_dwStyle;    // Cell Style - unused
  118. };
  119. //{{AFX_INSERT_LOCATION}}
  120. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  121. #endif // !defined(AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)