GridCell.cpp
上传用户:wenjimin
上传日期:2014-08-12
资源大小:111k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // GridCell.cpp: implementation of the CGridCell class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "GridCell.h"
  6. #include "GridDefaultCell.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. IMPLEMENT_DYNCREATE(CGridCell, CGridCellBase)
  16. CGridCell::CGridCell()
  17. {
  18. m_plfFont = NULL;
  19. m_strText.Empty();
  20.     m_pGrid    = NULL;
  21.     
  22.     
  23.     m_crBkClr = CLR_DEFAULT;     // Background colour (or CLR_DEFAULT)
  24.     m_crFgClr = CLR_DEFAULT;     // Forground colour (or CLR_DEFAULT)
  25.     
  26.     delete m_plfFont;
  27.     m_plfFont = NULL;            // Cell font
  28. }
  29. CGridCell::~CGridCell()
  30. {
  31. delete m_plfFont;
  32. }
  33. void CGridCell::operator=(const CGridCell& cell)
  34. {
  35.     if (this != &cell) CGridCellBase::operator=(cell);
  36. }
  37. void CGridCell::SetFont(const LOGFONT* plf)
  38. {
  39.     if (plf == NULL)
  40.     {
  41.         delete m_plfFont;
  42.         m_plfFont = NULL;
  43.     }
  44.     else
  45.     {
  46.         if (!m_plfFont)
  47.             m_plfFont = new LOGFONT;
  48.         if (m_plfFont)
  49.             memcpy(m_plfFont, plf, sizeof(LOGFONT)); 
  50.     }
  51. }
  52. LOGFONT* CGridCell::GetFont() const
  53. {
  54.     if (m_plfFont == NULL)
  55.     {
  56.         CGridDefaultCell *pDefaultCell = (CGridDefaultCell*) GetDefaultCell();
  57.         if (!pDefaultCell)
  58.             return NULL;
  59.         return pDefaultCell->GetFont();
  60.     }
  61.     return m_plfFont; 
  62. }
  63. CFont* CGridCell::GetFontObject() const
  64. {
  65.     // If the default font is specified, use the default cell implementation
  66.     if (m_plfFont == NULL)
  67.     {
  68.         CGridDefaultCell *pDefaultCell = (CGridDefaultCell*) GetDefaultCell();
  69.         if (!pDefaultCell)
  70.             return NULL;
  71.         return pDefaultCell->GetFontObject();
  72.     }
  73.     else
  74.     {
  75.         static CFont Font;
  76.         Font.DeleteObject();
  77.         Font.CreateFontIndirect(m_plfFont);
  78.         return &Font;
  79.     }
  80. }