MFC显示彩色拷贝位图的方法

1.定义一个BYTE类型的指针,用来指向将要拷贝的位图,

直接使用unsigned char类型也可以,应为BYTE被定义为unsigned char

unsigned char *pBits = NULL;

2.使用GetBitmapBits函数来拷贝位图,位图的宽为src_width,高为src_height,单位为像素。

先给存放位图的指针pBits申请内存,长度大小为“长 * 宽 * 4”,4表示一个像素的占用的字节大小

pBits = new unsigned char[client_w * client_h * 4];

memset(pBits, 0, sizeof(char) * src_width * src_height * 4);
::GetBitmapBits(buf_bitmap, src_width * src_height * 4, pBits); // buf_bitmap为源位图,类型为CBitmap

3.使用CreateBitmap来创建位图,参数可以直接用pBits。如果使用CreateCompatibleBitmap创建,位图参数必须是BITMAP

你可能感兴趣的:(mfc)