AnimatBitmapView.cpp
上传用户:gao_853
上传日期:2020-04-10
资源大小:362k
文件大小:4k
源码类别:

midi

开发平台:

Visual C++

  1. // AnimatBitmapView.cpp : implementation of the CAnimatBitmapView class
  2. //
  3. #include "stdafx.h"
  4. #include "AnimatBitmap.h"
  5. #include "AnimatBitmapDoc.h"
  6. #include "AnimatBitmapView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CAnimatBitmapView
  14. IMPLEMENT_DYNCREATE(CAnimatBitmapView, CView)
  15. BEGIN_MESSAGE_MAP(CAnimatBitmapView, CView)
  16. //{{AFX_MSG_MAP(CAnimatBitmapView)
  17. ON_COMMAND(IDM_Anime1, OnAnime1)
  18. ON_COMMAND(IDM_Anime2, OnAnime2)
  19. ON_COMMAND(IDM_Anime3, OnAnime3)
  20. //}}AFX_MSG_MAP
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CAnimatBitmapView construction/destruction
  24. CAnimatBitmapView::CAnimatBitmapView()
  25. {
  26. HBITMAP hbmp = (HBITMAP)::LoadImage (AfxGetInstanceHandle(), 
  27. "Demo2.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  28. ImgBmp.Attach (hbmp);
  29. AnimeCode = 25; Speed = 1;
  30. }
  31. CAnimatBitmapView::~CAnimatBitmapView()
  32. {
  33. if (ImgBmp.DeleteObject()) ImgBmp.Detach();
  34. }
  35. BOOL CAnimatBitmapView::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. // CAnimatBitmapView drawing
  43. void CAnimatBitmapView::OnDraw(CDC* pDC)
  44. {
  45. CAnimatBitmapDoc* pDoc = GetDocument();
  46. ASSERT_VALID(pDoc);
  47. CRect rect; GetClientRect(&rect);
  48. DIBSECTION ds;  ImgBmp.GetObject (sizeof (DIBSECTION), &ds);
  49. int x = (rect.Width() - ds.dsBm.bmWidth) / 2,
  50. y = (rect.Height() - ds.dsBm.bmHeight) / 2;
  51. if (x >= 0 && y >= 0)
  52. {
  53. SetCursorPos(180,30); ShowCursor(FALSE);
  54. pDC->SetBkMode(TRANSPARENT);
  55. pDC->DrawText("Veuillez patientez !nMerci", rect, DT_TOP | DT_CENTER);
  56. // Fonction Animation & Transformation Image Bitmap dans "AnimeBitmap.lib"
  57. ImgBmp.AnimeBmp_OmBoran(pDC, x, y, AnimeCode, Speed);
  58. ShowCursor(TRUE);
  59. }
  60. else  AfxMessageBox("Fen阾re < Image");
  61. }
  62. /////////////////////////////////////////////////////////////////////////////
  63. // CAnimatBitmapView diagnostics
  64. #ifdef _DEBUG
  65. void CAnimatBitmapView::AssertValid() const
  66. {
  67. CView::AssertValid();
  68. }
  69. void CAnimatBitmapView::Dump(CDumpContext& dc) const
  70. {
  71. CView::Dump(dc);
  72. }
  73. CAnimatBitmapDoc* CAnimatBitmapView::GetDocument() // non-debug version is inline
  74. {
  75. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAnimatBitmapDoc)));
  76. return (CAnimatBitmapDoc*)m_pDocument;
  77. }
  78. #endif //_DEBUG
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CAnimatBitmapView message handlers
  81. void CAnimatBitmapView::OnAnime1() 
  82. {
  83. if (ImgBmp.DeleteObject()) ImgBmp.Detach();
  84. HBITMAP hbmp = (HBITMAP)::LoadImage (AfxGetInstanceHandle(), 
  85. "Demo2.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  86. ImgBmp.Attach (hbmp);
  87. AnimeCode = 30;  Speed = 1; Invalidate();
  88. }
  89. void CAnimatBitmapView::OnAnime2() 
  90. {
  91. if (ImgBmp.DeleteObject()) ImgBmp.Detach();
  92. HBITMAP hbmp = (HBITMAP)::LoadImage (AfxGetInstanceHandle(), 
  93. "Demo1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  94. ImgBmp.Attach (hbmp);
  95. AnimeCode = 10; Speed = 15; Invalidate();
  96. }
  97. void CAnimatBitmapView::OnAnime3() 
  98. {
  99. if (ImgBmp.DeleteObject()) ImgBmp.Detach();
  100. HBITMAP hbmp = (HBITMAP)::LoadImage (AfxGetInstanceHandle(), 
  101. "Demo3.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  102. ImgBmp.Attach (hbmp);
  103. AnimeCode = 9; Speed = 5; Invalidate();
  104. }