以下代码未经过测试,只是编译没有问题,以前同事问到这个,所以才有下面代码:
class CBitmapBits
{
public:
CBitmapBits()
: m_pBitsBuf(NULL)
, m_dwWidth(0)
, m_dwHeight(0)
{
}
~CBitmapBits()
{
Destroy();
}
// 释放位图数据
void Destroy()
{
if (m_pBitsBuf != NULL)
{
delete[] m_pBitsBuf;
m_pBitsBuf = NULL;
}
m_dwWidth = 0;
m_dwHeight = 0;
}
public:
BYTE *m_pBitsBuf; // 据按RGB排列,按行优先排列,无4字节对齐,大小等于:宽度*高度*3
DWORD m_dwWidth; // 位图宽度
DWORD m_dwHeight; // 位图高度
};
// 把HBITMAP绘制到DC左上角
BOOL
DrawHBitmapToDC(
IN HBITMAP hBitmap, // 位图句柄
IN HDC hDC // 待绘制DC
)
{
// 参数有效性
if (hBitmap==NULL || hDC==NULL)
{
return FALSE;
}
// 取得位图数据信息,宽度高度等