ex74View.cpp
上传用户:qdhmjx
上传日期:2022-07-11
资源大小:2226k
文件大小:3k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // ex74View.cpp : implementation of the CEx74View class
  2. //
  3. #include "stdafx.h"
  4. #include "ex74.h"
  5. #include "ex74Doc.h"
  6. #include "ex74View.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CEx74View
  14. IMPLEMENT_DYNCREATE(CEx74View, CView)
  15. BEGIN_MESSAGE_MAP(CEx74View, CView)
  16. //{{AFX_MSG_MAP(CEx74View)
  17. ON_COMMAND(ID_Font, OnFont)
  18. //}}AFX_MSG_MAP
  19. // Standard printing commands
  20. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  21. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  23. END_MESSAGE_MAP()
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CEx74View construction/destruction
  26. CEx74View::CEx74View()
  27. {
  28. crColor=RGB(255,0,0);//字体初始颜色红色,与圆的颜色相同
  29. memset(&fnt,0,sizeof(LOGFONT));
  30.     strcpy(fnt.lfFaceName,"Arial");//初始字体名称
  31. fnt.lfHeight=50;//字体初始高度
  32. }
  33. CEx74View::~CEx74View()
  34. {
  35. }
  36. BOOL CEx74View::PreCreateWindow(CREATESTRUCT& cs)
  37. {
  38. // TODO: Modify the Window class or styles here by modifying
  39. //  the CREATESTRUCT cs
  40. return CView::PreCreateWindow(cs);
  41. }
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CEx74View drawing
  44. void CEx74View::OnDraw(CDC* pDC)
  45. {
  46. CEx74Doc* pDoc = GetDocument();
  47. ASSERT_VALID(pDoc);
  48. pDC->SetTextColor(crColor);//字体的颜色
  49. CFont myfont;
  50. myfont.CreateFontIndirect(&fnt);//间接创建一字体
  51. pDC->SelectObject(&myfont);
  52. pDC->TextOut(100,100,"Hello,Font dialog test!");
  53. }
  54. /////////////////////////////////////////////////////////////////////////////
  55. // CEx74View printing
  56. BOOL CEx74View::OnPreparePrinting(CPrintInfo* pInfo)
  57. {
  58. // default preparation
  59. return DoPreparePrinting(pInfo);
  60. }
  61. void CEx74View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  62. {
  63. // TODO: add extra initialization before printing
  64. }
  65. void CEx74View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  66. {
  67. // TODO: add cleanup after printing
  68. }
  69. /////////////////////////////////////////////////////////////////////////////
  70. // CEx74View diagnostics
  71. #ifdef _DEBUG
  72. void CEx74View::AssertValid() const
  73. {
  74. CView::AssertValid();
  75. }
  76. void CEx74View::Dump(CDumpContext& dc) const
  77. {
  78. CView::Dump(dc);
  79. }
  80. CEx74Doc* CEx74View::GetDocument() // non-debug version is inline
  81. {
  82. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEx74Doc)));
  83. return (CEx74Doc*)m_pDocument;
  84. }
  85. #endif //_DEBUG
  86. /////////////////////////////////////////////////////////////////////////////
  87. // CEx74View message handlers
  88. void CEx74View::OnFont() 
  89. {
  90. CFontDialog dlg(&fnt); //用构造函数初始化对话框中的字体
  91. dlg.m_cf.rgbColors=crColor;//初始化对话框中的颜色
  92. if(dlg.DoModal()==IDOK)
  93. {
  94. dlg.GetCurrentFont(&fnt);//获取所选字体
  95. crColor=dlg.GetColor();//获取所选颜色
  96. Invalidate();
  97. }
  98. }