81 lines
2.9 KiB
C
81 lines
2.9 KiB
C
|
//-----------------------------------------------------------------------------
|
||
|
// File: Cbitmap.h
|
||
|
//
|
||
|
// Desc: CBitmap class is an object that wraps around a Windows bitmap.
|
||
|
//
|
||
|
// Copyright (C) 1999-2000 Microsoft Corporation. All Rights Reserved.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef __CBITMAP_H__
|
||
|
#define __CBITMAP_H__
|
||
|
|
||
|
//@@BEGIN_MSINTERNAL
|
||
|
//typedef WINGDIAPI BOOL (WINAPI* ALPHABLEND)( HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION);
|
||
|
//extern ALPHABLEND g_AlphaBlend;
|
||
|
//extern HMODULE g_MSImg32;
|
||
|
//@@END_MSINTERNAL
|
||
|
|
||
|
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__
|