123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- //
- // Class: CCeXDib
- //
- // Compiler: Visual C++
- // eMbedded Visual C++
- // Tested on: Visual C++ 6.0
- // Windows CE 3.0
- //
- // Author: Davide Calabro' davide_calabro@yahoo.com
- // http://www.softechsoftware.it
- //
- // Note: This class uses code snippets taken from a similar class written
- // for the Win32 enviroment by Davide Pizzolato (ing.davide.pizzolato@libero.it)
- //
- // Disclaimer
- // ----------
- // THIS SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS" AND WITHOUT
- // ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO REPONSIBILITIES FOR POSSIBLE
- // DAMAGES OR EVEN FUNCTIONALITY CAN BE TAKEN. THE USER MUST ASSUME THE ENTIRE
- // RISK OF USING THIS SOFTWARE.
- //
- // Terms of use
- // ------------
- // THIS SOFTWARE IS FREE FOR PERSONAL USE OR FREEWARE APPLICATIONS.
- // IF YOU USE THIS SOFTWARE IN COMMERCIAL OR SHAREWARE APPLICATIONS YOU
- // ARE GENTLY ASKED TO DONATE 1$ (ONE U.S. DOLLAR) TO THE AUTHOR:
- //
- // Davide Calabro'
- // P.O. Box 65
- // 21019 Somma Lombardo (VA)
- // Italy
- //
- //
- #ifndef _CEXDIB_H_
- #define _CEXDIB_H_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #ifndef HDIB
- #define HDIB HANDLE
- #endif
- #ifndef WIDTHBYTES
- #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
- #endif
- #ifndef BFT_BITMAP
- #define BFT_BITMAP 0x4d42 // 'BM'
- #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; // Handle to bitmap
- HDC m_hMemDC; // Handle to memory DC
- LPVOID m_lpBits; // Pointer to actual bitmap bits
- };
- #endif
|