FONT.HXX
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #ifndef __FONT_HXX_
  2. #define __FONT_HXX_
  3. #include "canvas.hxx"
  4. //========== CFont =============================================
  5. class CFont
  6. {      
  7. public: 
  8.         CFont(HFONT hfont);
  9.         CFont(TCHAR * szFace, int iHeight, 
  10.               BOOL fBold = FALSE, BOOL fItalic = FALSE, BOOL fUnder = FALSE);
  11.         ~CFont();
  12.         BOOL Create(LOGFONT& lf);
  13.         BOOL Update(int iHeight, BOOL fBold=FALSE);
  14.         operator HFONT() const
  15.                 { return _hfont; }
  16.         BOOL Choose(HWND hwnd);
  17. protected:
  18.         HFONT _hfont;
  19.         BOOL _fDel;
  20. };
  21. //========== CFontSelect =======================================
  22. class CFontSelect
  23. {
  24. public:
  25.         CFontSelect(CCanvas &canvas, HFONT hfont) :
  26.             _canvas(canvas)
  27.         {
  28.             _hfontOld = SelectFont(_canvas, hfont);
  29.         };
  30.         ~CFontSelect()
  31.         {
  32.             // Make sure font is not selected, so it can be deleted
  33.             SelectFont(_canvas, _hfontOld);
  34.         }
  35. protected:
  36.         HFONT _hfontOld;
  37.         CCanvas &_canvas;
  38. };
  39. //========== CBlackPen =======================================
  40. class CBlackPen
  41. {
  42. public:
  43.         CBlackPen(CCanvas &canvas, int iStyle, int iWidth) :
  44.             _canvas(canvas)
  45.         {
  46.             _hPen = CreatePen(iStyle,iWidth,RGB(0,0,0)); 
  47.             _hPenOld = SelectPen(_canvas, _hPen);
  48.         };
  49.         ~CBlackPen()
  50.         {
  51.             // release pen
  52.             _hPen = SelectPen(_canvas, _hPenOld);
  53.             DeleteObject(_hPen);
  54.         }
  55. protected:
  56.         HPEN _hPen;     
  57.         HPEN _hPenOld;
  58.         CCanvas &_canvas;
  59. };
  60. //========== CBrush =====================================
  61. class CBrush
  62. {
  63. public:
  64. CBrush(CCanvas &canvas, int iStyle=BS_NULL, COLORREF color=RGB(0,0,0)) :
  65. _canvas(canvas)
  66. {
  67. LOGBRUSH lb;
  68. lb.lbStyle= iStyle;
  69. lb.lbColor= color;
  70. lb.lbHatch = NULL;
  71. _hBrush = CreateBrushIndirect(&lb);
  72. _hBrushOld = SelectBrush(_canvas, _hBrush);
  73. }
  74. ~CBrush()
  75. {
  76. //release brush
  77. _hBrush = SelectBrush(_canvas, _hBrushOld);
  78. DeleteObject(_hBrush);
  79. }
  80. protected:
  81. HBRUSH _hBrush;
  82. HBRUSH _hBrushOld;
  83. CCanvas _canvas;
  84. };
  85. #endif