ImageEx.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef IMAGE_HEAD_FILE
  2. #define IMAGE_HEAD_FILE
  3. #pragma once
  4. //#include "SkinUI.h"
  5. //系统头文件
  6. #include <GdiPlus.h>
  7. using namespace Gdiplus;
  8. //////////////////////////////////////////////////////////////////////////////////
  9. //图片对象
  10. class CImageEx
  11. {
  12. //变量定义
  13. protected:
  14. Bitmap * m_pImage; //图片对象
  15. TCHAR m_strImageName[MAX_PATH]; //图片名称
  16. RECT m_rcNinePart;
  17. HBITMAP m_hBitmap;
  18. //函数定义
  19. public:
  20. //构造函数
  21. CImageEx();
  22. //析构函数
  23. virtual ~CImageEx();
  24. //状态函数
  25. public:
  26. //是否加载
  27. bool IsNull();
  28. //获取宽度
  29. INT GetWidth();
  30. //获取高度
  31. INT GetHeight();
  32. //设置函数
  33. public:
  34. //九宫格绘图
  35. void SetNinePart(CONST LPRECT lprcNinePart);
  36. //转HBITMAP
  37. HBITMAP ImageToBitmap(/*HDC hDC*/);
  38. //灰度
  39. bool SetGray();
  40. //管理函数
  41. public:
  42. //销毁图片
  43. bool DestroyImage();
  44. //加载图片
  45. bool LoadImage(LPCTSTR pszFileName);
  46. //加载图片
  47. bool LoadImage(HINSTANCE hInstance, LPCTSTR pszResourceName,LPCTSTR pszResourceType=TEXT("IMAGE"));
  48. //绘画函数
  49. public:
  50. //绘画图像
  51. bool DrawImage(CDC * pDC, INT nXPos, INT nYPos);
  52. //绘画图像
  53. bool DrawImage(CDC * pDC, INT nXPos, INT nYPos, INT nDestWidth, INT nDestHeight);
  54. //绘画图像
  55. bool DrawImage(CDC * pDC, RECT &rc);
  56. //绘画图像
  57. bool DrawImage(CDC * pDC, INT nXDest, INT nYDest, INT nDestWidth, INT nDestHeight, INT nXScr, INT nYSrc);
  58. //绘画图像
  59. bool DrawImage(CDC * pDC, INT nXDest, INT nYDest, INT nDestWidth, INT nDestHeight, INT nXScr, INT nYSrc, INT nSrcWidth, INT nSrcHeight);
  60. //透明绘画
  61. public:
  62. //混合绘画
  63. bool AlphaDrawImage(CDC * pDestDC, INT xDest, INT yDest, BYTE cbAlphaDepth);
  64. //混合绘画
  65. bool AlphaDrawImage(CDC * pDestDC, INT xDest, INT yDest, INT cxDest, INT cyDest, INT xSrc, INT ySrc, BYTE cbAlphaDepth);
  66. //混合绘画
  67. bool AlphaDrawImage(CDC * pDestDC, INT xDest, INT yDest, INT cxDest, INT cyDest, INT xSrc, INT ySrc, INT cxSrc, INT cySrc, BYTE cbAlphaDepth);
  68. //区域绘制
  69. public:
  70. //绘画图像
  71. bool Draw( CDC * pDC, INT x, INT y, INT cx, INT cy,INT nLeft,INT nTop,INT nRight,INT nBottom );
  72. //绘画图像
  73. bool Draw( CDC * pDC, const RECT& rectDest, const RECT& rectSrc );
  74. //绘画图像
  75. bool Draw( CDC * pDC, const RECT& rectDest );
  76. //拉伸绘制
  77. public:
  78. //
  79. bool DrawExtrude(CDC*pDC,const RECT& rectDest,bool bLeft=false,int nPixel=1);
  80. };
  81. //////////////////////////////////////////////////////////////////////////////////
  82. #endif