ImageEx.h 2.2 KB

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