原创 显示一张位图的三种方法

2010-1-13 16:28 2244 4 4 分类: MCU/ 嵌入式
显示一张位图,三种基本方法:



一、位图资源的显示(设资源ID为IDB——bitmap1程序如下)

{

CBitmap bitmap;

CBitmap* poldbitmap;

cdc memdc;

memdc.createcompatibledc(&dc); // 建立与显示设备兼容的内存设备场境

bitmap.loadbitmap(idb_bitmap1); // 取出位图资源

poldbitmap=memdc.selectobject(&bitmap); // 将位图选入内存场境

dc.bitblt(50,50,48,48,&memdc,0,0,srccopy); // 显示它

memdc.selectobject(poldbitmap);

}



二、创建位图,然后在里面画上图形,再显示它

{

CBitmap bitmap;

CBitmap* poldbitmap;

cdc memdc;

int i;

cpen pen;

cpen* oldpen;

memdc.Createcompatibledc(&dc); // 建立与显示设备兼容的内存设备场境

bitmap.Createcompatiblebitmap(&dc,100,100);// 建立与显示设备兼容的位图

poldbitmap=memdc.SelectObject(&bitmap); // 将位图选入内存场境

for(i=0;i<100;i++)

{ // 画100根线

pen.CreatePen(ps_solid,1, rgb(0,0,i*2+55));

oldpen=memdc. SelectObject (&pen);

memdc.moveto(0,i);

memdc.lineto(100,i);

memdc.selectobject(oldpen);

pen.deleteobject();

}

dc.bitblt(50,50,100,100,&memdc,0,0,srccopy); // 显示它

memdc.selectobject(poldbitmap);

}



三、显示磁盘上的外部bmp文件

{

hbitmap bitmap;

// 读取位图文件sample.bmp

bitmap=(hbitmap)loadimage(afxgetinstancehandle(),"sample.bmp",

image_bitmap,0,0,lr_loadfromfile|lr_createdibsection);

assert(bitmap);

hbitmap oldbitmap;

cdc memdc;crect rect;

memdc.createcompatibledc(&dc);

getclientrect(rect);

oldbitmap=(hbitmap)memdc.selectobject(bitmap);

// 显示它

dc.bitblt(20,20,rect.width()-20,rect.height()-20,&memdc,0,0,srccopy);

memdc.selectobject(oldbitmap);

}



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条