shamantou blog site

shamantou@gmail.com

导航

Some experience result

My experience

//一个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);


//搜了许多资料,并没有找到我要的,发了帖子好像也没有人给我解答,郁闷了

<< The Tao Of ProgrammingRunning tonight >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206 Copyright 2006-2009 | ooplab.org | shamantou@gmail.com | 沪ICP备08011244号 | Some Rights Reserved.