www.pudn.com > opengl_pick_sample.rar > dibsect.h
#ifndef __DIB_SECTION_CLASS_NCLUDE_H__
#define __DIB_SECTION_CLASS_NCLUDE_H__
//
// DIBSection -
//
// Encapsulates a DIB section and a DC.
//
class DIBSection
{
void InitObject(void);
protected:
HBITMAP m_hbmp;
HBITMAP m_hbmOld;
void* m_pBits;
CSize m_size;
CDC* m_pdc;
int m_total_width;
BITMAPINFOHEADER m_bih;
unsigned long m_bitcount;
public:
DIBSection();
DIBSection(const DIBSection& dib);
virtual ~DIBSection();
void Copy(const DIBSection& dib);
DIBSection& operator=(const DIBSection& dib);
void Close(void);
int IsCreated(void)const{ return (m_pBits?1:0);}
// Create a DIBSection
void Create(int cx, int cy, int nbits );
// Draw method
void Draw(CDC* pdcDest, int x, int y);
// Resize method
void ResizeImage(DIBSection& dst_dib, int w, int h);
// patblt method
void PatBlt(DWORD pattern);
CDC* GetDC() {return m_pdc;}
HBITMAP GetHandle() {return m_hbmp;}
unsigned long Width(void)const{ return m_size.cx;}
unsigned long Height(void)const{ return m_size.cy;}
unsigned long GetTotalWidth(void)const{ return m_total_width;}
void * GetBits(void){ return m_pBits;}
void * GetConstBits(void)const{ return m_pBits;}
BITMAPINFOHEADER& GetBIH(void){ return m_bih;}
unsigned long GetBitCount(void)const{ return m_bitcount;}
void SetPixel(UINT32 x, UINT32 y, COLORREF cr);
void GetPixel(UINT32 x, UINT32 y, COLORREF& cr);
};
#endif