TextShadePrjView.cpp
上传用户:aokegd
上传日期:2009-12-14
资源大小:1276k
文件大小:3k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // TextShadePrjView.cpp : implementation of the CTextShadePrjView class
  2. //
  3. #include "stdafx.h"
  4. #include "TextShadePrj.h"
  5. #include "TextShadePrjDoc.h"
  6. #include "TextShadePrjView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CTextShadePrjView
  14. IMPLEMENT_DYNCREATE(CTextShadePrjView, CView)
  15. BEGIN_MESSAGE_MAP(CTextShadePrjView, CView)
  16. //{{AFX_MSG_MAP(CTextShadePrjView)
  17. ON_WM_TIMER()
  18. ON_WM_DESTROY()
  19. //}}AFX_MSG_MAP
  20. // Standard printing commands
  21. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  23. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CTextShadePrjView construction/destruction
  27. CTextShadePrjView::CTextShadePrjView()
  28. {
  29. // TODO: add construction code here
  30. m_nRed = m_nGreen = m_nBlue = 0;
  31. }
  32. CTextShadePrjView::~CTextShadePrjView()
  33. {
  34. }
  35. BOOL CTextShadePrjView::PreCreateWindow(CREATESTRUCT& cs)
  36. {
  37. // TODO: Modify the Window class or styles here by modifying
  38. //  the CREATESTRUCT cs
  39. return CView::PreCreateWindow(cs);
  40. }
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CTextShadePrjView drawing
  43. void CTextShadePrjView::OnDraw(CDC* pDC)
  44. {
  45. CTextShadePrjDoc* pDoc = GetDocument();
  46. ASSERT_VALID(pDoc);
  47. //创建输出字符串.
  48. CString str (_T ("Hello...I am Shading!"));
  49. //设置字体颜色
  50. pDC->SetTextColor (RGB (m_nRed,m_nGreen,m_nBlue));
  51. //输出字体
  52. pDC->TextOut(100,100,str);
  53. }
  54. /////////////////////////////////////////////////////////////////////////////
  55. // CTextShadePrjView printing
  56. BOOL CTextShadePrjView::OnPreparePrinting(CPrintInfo* pInfo)
  57. {
  58. // default preparation
  59. return DoPreparePrinting(pInfo);
  60. }
  61. void CTextShadePrjView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  62. {
  63. // TODO: add extra initialization before printing
  64. }
  65. void CTextShadePrjView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  66. {
  67. // TODO: add cleanup after printing
  68. }
  69. /////////////////////////////////////////////////////////////////////////////
  70. // CTextShadePrjView diagnostics
  71. #ifdef _DEBUG
  72. void CTextShadePrjView::AssertValid() const
  73. {
  74. CView::AssertValid();
  75. }
  76. void CTextShadePrjView::Dump(CDumpContext& dc) const
  77. {
  78. CView::Dump(dc);
  79. }
  80. CTextShadePrjDoc* CTextShadePrjView::GetDocument() // non-debug version is inline
  81. {
  82. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTextShadePrjDoc)));
  83. return (CTextShadePrjDoc*)m_pDocument;
  84. }
  85. #endif //_DEBUG
  86. /////////////////////////////////////////////////////////////////////////////
  87. // CTextShadePrjView message handlers
  88. void CTextShadePrjView::OnTimer(UINT nIDEvent) 
  89. {
  90. CView::OnTimer(nIDEvent);
  91. //改变文字的rgb值
  92. if(m_nRed<=205)
  93. m_nRed += 50;
  94. else if(m_nRed == 255)
  95. m_nRed = 0; 
  96. else
  97. m_nRed = 255;
  98. if(m_nGreen<=205)
  99. m_nGreen += 50;
  100. else if(m_nRed == 255)
  101. m_nGreen = 0; 
  102. else
  103. m_nGreen = 255;
  104. if(m_nBlue<=205)
  105. m_nBlue += 50;
  106. else if(m_nBlue == 255)
  107. m_nBlue = 0; 
  108. else
  109. m_nBlue = 255;
  110. //重画文字
  111. Invalidate();
  112. }
  113. void CTextShadePrjView::OnInitialUpdate() 
  114. {
  115. CView::OnInitialUpdate();
  116. //开启定时器
  117. SetTimer(0,1000,NULL);
  118. }
  119. void CTextShadePrjView::OnDestroy() 
  120. {
  121. //关闭定时器
  122. KillTimer(0);
  123. CView::OnDestroy();
  124. }