设为首页 加入收藏

TOP

1.3.1 从资源中装入GDI位图
2013-10-07 00:19:32 来源: 作者: 【 】 浏览:58
Tags:1.3.1 资源 装入 GDI位图

1.3.1  从资源中装入GDI位图

使用位图的最简单的方法就是从资源中直接获取位图。以chap1_2工程文件为例,如果我们看一下Workspace窗口里的ResourceView,就会发现一个工程位图资源列表。其中IDB_building是一个位图资源的ID,打开IDB_building位图资源的属性对话框,可以看到其对应的位图文件位于工程文件res目录下的building.bmp,它是一个湖边楼阁的照片,因资源位图不支持24位真彩色,因此该图像应该是256色的索引位图。

 
图1-11  位图资源IDB_building的属性对话框


CBitmap类中的LoadBitmap() 函数成员能够将基于资源的DIB转换成GDI位图。用如下简单的OnDraw()函数就可以显示building图像了。

 void CChap1_2View::OnDraw(CDC* pDC)
{
//CBitmap对象
CBitmap bitmap;

//设备环境类对象
CDC dcMemory;

//加载资源位图
bitmap.LoadBitmap(IDB_building);

//创建内存设备环境
dcMemory.CreateCompatibleDC(pDC);

//把位图选进内存设备环境,并保存旧的GDI位图对象
CBitmap *oldbitmap=dcMemory.SelectObject(&bitmap);

//显示
pDC->BitBlt(0,0,400,300, &dcMemory,0,0,SRCCOPY);

//释放bitmap,恢复原GDI位图
dcMemory.SelectObject(oldbitmap);
}


程序中BitBlt()函数将building的像素从内存显示环境复制到显示器(或打印机)设备环境中。building位图的尺寸是300400,在显示器上,它占据了逻辑单位为300400的一个矩形区域,并且该区域的左上角位于Windows客户区域的(0,0)点处。下面是BitBlt()函数的原型。
Bool BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop);

其中:

x和y表示绘制区域的左上角坐标,跟显示映射模式有关。

nWidth表示绘制区域的宽度。

nHeight表示绘制区域的高度。

pSrcDC表示要复制位图所在的CDC对象指针。

xSrc和ySrc表示原位图要绘制区域的左上角坐标(逻辑单位)。

dwRop表示绘制方式,此处有多个选项,读者可以查阅相关书籍或MSDN,此处不赘述。

chap1_2的运行结果如图1-12所示。

 
图1-12  运行结果

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Visual C++数字图像处理 目录 下一篇1.2.3 BMP图像位图数据的访问

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: