#include <iostream>
#include <windows.h>
using namespace std;
bool SaveBitmapToFile(HDC hDC , HBITMAP hBitmap , LPCTSTR name)
{
//BITMAP是个结构,记录了已调入内存的BMP图象的宽高,颜色等信息以及图象数据
//与系统当前得显示模式,色深有关。
BITMAP bm;
DWORD size;
GetObject(hBitmap,sizeof(bm),(LPBYTE)&bm); // SDK中从HBITMAP获得BITMAP的方法 MFC中用GetBitmap
size = bm.bmWidthBytes*bm.bmHeight;
HGLOBAL hMen = GlobalAlloc(GMEM_FIXED|GMEM_ZEROINIT,size);//从堆中分配内存
if(hMen==0)
return false;
LPSTR lpData = (LPSTR)GlobalLock(hMen); // 锁定分配的内存并获得指针
BITMAPINFOHEADER bih; // 位图信息头
bih.biSize = sizeof(BITMAPINFOHEADER);
bih.biWidth = bm.bmWidth;
bih.biHeight = bm.bmHeight;
bih.biPlanes = 1;
bih.biBitCount = bm.bmBitsPixel;
bih.biCompression = 0;
bih.biSizeImage = 0;
bih.biXPelsPerMeter = 0;