FontDlgView.cpp
上传用户:taiyu_2006
上传日期:2022-07-26
资源大小:36k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // FontDlgView.cpp : implementation of the CFontDlgView class
  2. //
  3. #include "stdafx.h"
  4. #include "FontDlg.h"
  5. #include "FontDlgDoc.h"
  6. #include "FontDlgView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CFontDlgView
  14. IMPLEMENT_DYNCREATE(CFontDlgView, CView)
  15. BEGIN_MESSAGE_MAP(CFontDlgView, CView)
  16. //{{AFX_MSG_MAP(CFontDlgView)
  17. ON_COMMAND(ID_VIEW_FONT, OnViewFont)
  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. // CFontDlgView construction/destruction
  26. CFontDlgView::CFontDlgView()
  27. {
  28. // TODO: add construction code here
  29. }
  30. CFontDlgView::~CFontDlgView()
  31. {
  32. }
  33. BOOL CFontDlgView::PreCreateWindow(CREATESTRUCT& cs)
  34. {
  35. // TODO: Modify the Window class or styles here by modifying
  36. //  the CREATESTRUCT cs
  37. return CView::PreCreateWindow(cs);
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CFontDlgView drawing
  41. void CFontDlgView::OnDraw(CDC* pDC)
  42. {
  43. CFontDlgDoc* pDoc = GetDocument();
  44. ASSERT_VALID(pDoc);
  45. // TODO: add draw code for native data here
  46. CFont*pfntOld=pDC->SelectObject(&m_fontDlg);
  47. pDC->SetTextColor(m_clrText);
  48. pDC->TextOut(10,250,"內容:使用通用字體對話框動態設置字體");
  49. pDC->SelectObject(pfntOld);
  50. }
  51. /////////////////////////////////////////////////////////////////////////////
  52. // CFontDlgView printing
  53. BOOL CFontDlgView::OnPreparePrinting(CPrintInfo* pInfo)
  54. {
  55. // default preparation
  56. return DoPreparePrinting(pInfo);
  57. }
  58. void CFontDlgView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  59. {
  60. // TODO: add extra initialization before printing
  61. }
  62. void CFontDlgView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  63. {
  64. // TODO: add cleanup after printing
  65. }
  66. /////////////////////////////////////////////////////////////////////////////
  67. // CFontDlgView diagnostics
  68. #ifdef _DEBUG
  69. void CFontDlgView::AssertValid() const
  70. {
  71. CView::AssertValid();
  72. }
  73. void CFontDlgView::Dump(CDumpContext& dc) const
  74. {
  75. CView::Dump(dc);
  76. }
  77. CFontDlgDoc* CFontDlgView::GetDocument() // non-debug version is inline
  78. {
  79. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFontDlgDoc)));
  80. return (CFontDlgDoc*)m_pDocument;
  81. }
  82. #endif //_DEBUG
  83. /////////////////////////////////////////////////////////////////////////////
  84. // CFontDlgView message handlers
  85. void CFontDlgView::OnViewFont() 
  86. {
  87. // TODO: Add your command handler code here
  88. CFontDialog dlgFont;
  89. if(dlgFont.DoModal()==IDOK)
  90. {
  91. m_fontDlg.DeleteObject();
  92. LOGFONT LogFnt;
  93. dlgFont.GetCurrentFont(&LogFnt);
  94. m_fontDlg.CreateFontIndirect(&LogFnt);//或m_fontDlg.CreateFontIndirect(dlgFont.m_cf.lpLogFont);
  95. m_clrText=dlgFont.m_cf.rgbColors;//或m_clrText=dlgFont.GetColor();
  96. Invalidate();
  97. }
  98. }