123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #ifndef _CEXDIB_H_
- #define _CEXDIB_H_
- #if _MSC_VER > 1000
- #pragma once
- #endif
- #ifndef HDIB
- #define HDIB HANDLE
- #endif
- #ifndef WIDTHBYTES
- #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
- #endif
- #ifndef BFT_BITMAP
- #define BFT_BITMAP 0x4d42
- #endif
- class CCeXDib
- {
- public:
- CCeXDib();
- virtual ~CCeXDib();
- HDIB Create(DWORD dwWidth, DWORD dwHeight, WORD wBitCount);
- void Clone(CCeXDib* src);
- void Draw(HDC hDC, DWORD dwX, DWORD dwY);
- LPBYTE GetBits();
- void Clear(BYTE byVal = 0);
- void SetGrayPalette();
- void SetPaletteIndex(BYTE byIdx, BYTE byR, BYTE byG, BYTE byB);
- void SetPixelIndex(DWORD dwX, DWORD dwY, BYTE byI);
- void BlendPalette(COLORREF crColor, DWORD dwPerc);
- WORD GetBitCount();
- DWORD GetLineWidth();
- DWORD GetWidth();
- DWORD GetHeight();
- WORD GetNumColors();
- BOOL WriteBMP(LPCTSTR bmpFileName);
- private:
- void FreeResources();
- DWORD GetPaletteSize();
- DWORD GetSize();
- RGBQUAD RGB2RGBQUAD(COLORREF cr);
- HDIB m_hDib;
- BITMAPINFOHEADER m_bi;
- DWORD m_dwLineWidth;
- WORD m_wColors;
- HBITMAP m_hBitmap;
- HDC m_hMemDC;
- LPVOID m_lpBits;
- };
- #endif
|