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

金融证券系统

开发平台:

Visual C++

  1. // GridDefaultCell.cpp: implementation of the CGridDefaultCell class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "GridDefaultCell.h"
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char THIS_FILE[]=__FILE__;
  9. #define new DEBUG_NEW
  10. #endif
  11. //////////////////////////////////////////////////////////////////////
  12. // Construction/Destruction
  13. //////////////////////////////////////////////////////////////////////
  14. IMPLEMENT_DYNCREATE(CGridDefaultCell, CGridCell)
  15. CGridDefaultCell::CGridDefaultCell()
  16. {
  17. m_crFgClr = CLR_DEFAULT;
  18.     m_crBkClr = CLR_DEFAULT;
  19.     m_Size    = CSize(30,20);
  20.     m_dwStyle = 0;
  21. #ifdef _WIN32_WCE
  22.     LOGFONT lf;
  23.     GetObject(GetStockObject(SYSTEM_FONT), sizeof(LOGFONT), &lf);
  24.     SetFont(&lf);
  25. #else // not CE
  26.     NONCLIENTMETRICS ncm;
  27.     ncm.cbSize = sizeof(NONCLIENTMETRICS);
  28.     VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0));
  29.     SetFont(&(ncm.lfMessageFont));
  30. #endif
  31. }
  32. CGridDefaultCell::~CGridDefaultCell()
  33. {
  34. }
  35. void CGridDefaultCell::SetFont(const LOGFONT* plf)
  36. {
  37.     ASSERT(plf);
  38.     if (!plf) return;
  39.     m_Font.DeleteObject();//释放内存
  40.     m_Font.CreateFontIndirect(plf);//创建字体
  41.     CGridCell::SetFont(plf);//设置字体
  42.     // Get the font size and hence the default cell size
  43.     CDC* pDC = CDC::FromHandle(::GetDC(NULL));
  44.     if (pDC)
  45.     {
  46.         CFont* pOldFont = pDC->SelectObject(&m_Font);
  47.         m_Size = pDC->GetTextExtent(_T(" XXXXXXXXXXXX "), 16);
  48.         m_Size.cy = (m_Size.cy * 3) / 2;
  49.         pDC->SelectObject(pOldFont);
  50.         ReleaseDC(NULL, pDC->GetSafeHdc());
  51.     }
  52.     else
  53.     {
  54.         m_Size = CSize(40,16);
  55.     }
  56. }
  57. LOGFONT* CGridDefaultCell::GetFont() const
  58. {
  59.    
  60. ASSERT(m_plfFont);  // This is the default - it CAN'T be NULL!
  61.     return m_plfFont;
  62. }