home *** CD-ROM | disk | FTP | other *** search
- //-----------------------------------------------------------------------------
- // File: Cbitmap.h
- //
- // Desc: CBitmap class is an object that wraps around a Windows bitmap.
- //
- // Copyright (C) 1999-2001 Microsoft Corporation. All Rights Reserved.
- //-----------------------------------------------------------------------------
-
- #ifndef __CBITMAP_H__
- #define __CBITMAP_H__
-
-
- class CBitmap
- {
- private:
- CBitmap() :
- m_hbm(NULL),
- m_bSizeKnown(FALSE),
- m_hDCInto(NULL), m_hOldBitmap(NULL)
- {}
- public:
- ~CBitmap();
-
- static CBitmap *CreateViaD3DX(LPCTSTR tszFileName, LPDIRECT3DSURFACE8 pUISurf = NULL);
- static CBitmap *CreateViaLoadImage(HINSTANCE hInst, LPCTSTR tszName, UINT uType, int cx, int cy, UINT fuLoad);
- static CBitmap *CreateFromResource(HINSTANCE hInst, UINT uID) {return CreateFromResource(hInst, MAKEINTRESOURCE(uID));}
- static CBitmap *CreateFromResource(HINSTANCE hInst, LPCTSTR tszName);
- static CBitmap *CreateFromFile(LPCTSTR tszFileName);
- static CBitmap *StealToCreate(HBITMAP &refbm);
- static CBitmap *Create(int cx, int cy, HDC hDC = NULL) {SIZE size = {cx, cy}; return Create(size, hDC);}
- static CBitmap *Create(SIZE, HDC = NULL);
- static CBitmap *Create(SIZE, COLORREF, HDC = NULL);
- static CBitmap *CreateHorzGradient(const RECT &, COLORREF, COLORREF);
-
- BOOL GetSize(SIZE *psize);
- void AssumeSize(SIZE size);
- BOOL FigureSize();
-
- CBitmap *CreateResizedTo(SIZE size, HDC hDC = NULL, int iStretchMode = HALFTONE, BOOL bStretch = TRUE);
- CBitmap *Dup();
-
- BOOL Get(HDC hDC, POINT point, SIZE size);
- BOOL Get(HDC hDC, POINT point);
-
- BOOL Draw(HDC hDC) {return Draw(hDC, 0, 0);}
- BOOL Draw(HDC hDC, SIZE size) {return Draw(hDC, 0, 0, size);}
- BOOL Draw(HDC hDC, int x, int y, SIZE size) {POINT t = {x, y}; return Draw(hDC, t, size);}
- BOOL Draw(HDC hDC, int x, int y) {POINT t = {x, y}; return Draw(hDC, t);}
- BOOL Draw(HDC hDC, POINT origin) {SIZE t = {0, 0}; return Draw(hDC, origin, t, TRUE);}
- BOOL Draw(HDC hDC, POINT origin, SIZE size, BOOL bAll = FALSE);
-
- BOOL Blend(HDC hDC) {return Blend(hDC, 0, 0);}
- BOOL Blend(HDC hDC, SIZE size) {return Blend(hDC, 0, 0, size);}
- BOOL Blend(HDC hDC, int x, int y, SIZE size) {POINT t = {x, y}; return Blend(hDC, t, size);}
- BOOL Blend(HDC hDC, int x, int y) {POINT t = {x, y}; return Blend(hDC, t);}
- BOOL Blend(HDC hDC, POINT origin) {SIZE t = {0, 0}; return Blend(hDC, origin, t, TRUE);}
- BOOL Blend(HDC hDC, POINT origin, SIZE size, BOOL bAll = FALSE);
-
- HDC BeginPaintInto(HDC hCDC = NULL);
- void EndPaintInto(HDC &hDC);
-
- BOOL MapToDC(HDC hDCTo, HDC hDCMapFrom = NULL);
-
- private:
- HBITMAP m_hbm;
- SIZE m_size;
- BOOL m_bSizeKnown;
- HDC m_hDCInto;
- HGDIOBJ m_hOldBitmap;
- void PopOut();
- void PopIn();
- };
-
-
- #endif //__CBITMAP_H__
-