//一个CBitmap对象使用时遇到的问题:
CBitmap *bmp=new CBitmap; bmp->CreateBitmap(800,600,1,8,raw_data);
//raw_data是由从文件读入内存的一个很大的BYTE型数组,由这个数组组成位图灰度值
CDC *MenDC=new CDC;//创建一个新的设备环境内存指针
MenDC->CreateCompatibleDC(pDC);//pDC为当前设备上下文
if(MenDC->SelectObject(bmp))
AfxMessageBox("OK");
else
AfxMessageBox("failed!");
/*问题就出在这里,无论如何,如果创建的是8位的CBitmap对象,这里总是failed,如果创建的CBitmap对象的深度设置为和我的显示一样的深度,譬如32位则能正确显示。 问题是现在我要显示的数据就是8位的,如何才能把这个bmp对象正确送到MemDC中去呢?*/
pDC->BitBlt(0,0,length,width,MenDC,0,0,SRCCOPY);
//搜了许多资料,并没有找到我要的,发了帖子好像也没有人给我解答,郁闷了