XTPCommandBarAnimation.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:2k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPCommandBarAnimation.h: interface for the CXTPCommandBarAnimation class.
  2. //
  3. // This file is a part of the XTREME COMMANDBARS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPRIBBONANIMATION_H__)
  22. #define __XTPRIBBONANIMATION_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. //{{AFX_CODEJOCK_PRIVATE
  28. class CXTPCommandBar;
  29. #define XTP_TID_ANIMATION 0xACD43
  30. class _XTP_EXT_CLASS CXTPCommandBarAnimation
  31. {
  32. protected:
  33. struct CAnimateInfo
  34. {
  35. CAnimateInfo();
  36. ~CAnimateInfo();
  37. HBITMAP hbmSrc;
  38. BYTE* pSrcBits;
  39. HBITMAP hbmSrcBack;
  40. BYTE* pSrcBackBits;
  41. RECT rcPaint;
  42. int m_nAnimation;
  43. CArray<RECT, RECT&> arrExclude;
  44. };
  45. public:
  46. CXTPCommandBarAnimation(CXTPCommandBar* pCommandBar);
  47. ~CXTPCommandBarAnimation();
  48. public:
  49. void OnPaint(CPaintDC& paintDC);
  50. void RedrawRect(LPCRECT lpRect, BOOL bAnimate);
  51. void OnAnimate();
  52. void OnDestroy();
  53. protected:
  54. void RemoveAnimations();
  55. void AnimateRect(CClientDC& dc, CAnimateInfo* pai);
  56. void RemoveIntersections(LPCRECT rcPaint, BOOL bAddExclude);
  57. void AlphaBlendU(PBYTE pDest, PBYTE pSrcBack, int cx, int cy, PBYTE pSrc, BYTE byAlpha);
  58. void AddAnimation(CClientDC& dc, CAnimateInfo* pai);
  59. BOOL IsAnimationEnabled() const;
  60. public:
  61. CXTPCommandBar* m_pParent;
  62. CBitmap m_bmpCache;
  63. BOOL m_bInvalidate;
  64. UINT_PTR m_nTimer;
  65. BOOL m_bAnimation;
  66. BOOL m_bDoubleBuffer;
  67. protected:
  68. CArray<CAnimateInfo*, CAnimateInfo*> m_arrAnimation;
  69. };
  70. //}}AFX_CODEJOCK_PRIVATE
  71. #endif // !defined(__XTPRIBBONANIMATION_H__)