CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
来源:互联网 发布:财务数据库 编辑:程序博客网 时间:2024/05/08 18:07
文章来自:http://blog.csdn.net/houzh/archive/2008/03/08/2158548.aspx
物理HDC 设备底层会拥有显存等资源,但是兼容DC并没有给图像像素提供内存空间,因此兼容DC总是和BITMAP配合使用,这样一来,兼容DC就利用BITMAP的图像像素数据空间给自己提供类似于显存的内存空间.
这样有很多好处,以来我们可以在加载图片后,在图片上利用DC的各种绘图功能.请看如下示例:
兼容DC在建立之初,只有1*1像素的尺寸,SelectObject选择bitmap以后才可以进行绘图.
内存DC的可见区域是简单的区域,不像物理DC可见区域可能被其他窗口覆盖而产生复杂的可见区域.由于DC的任何绘图都需要考虑在可见区域内绘图,绝对不能超出可见区域的范围.因此每个GDI绘图输出最终都需要和构成复杂可见区域的每一个巨型区域进行剪裁输出,因此物理DC的绘图效果会比兼容DC速度慢一些.这也就是我们经常用兼容DC进行双缓存输出的一个原因
HDC hdc=GetDC(hwnd);
HDC memdc=CreateCompatibleDC(hdc);
RECT rc;
BITMAP bmp;
HBITMAP holdbmp,hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_CLOCK));//从资源加载位图
holdbmp=(HBITMAP)SelectObject(memdc,hbmp);//这里把hbmp的位图选择到兼容DC memdc,之后这个兼容DC就拥有和
//hbmp同样大小的绘图区域,注意超出位图返回的GDI输出都是无效的.
GetObject(hbmp,sizeof(BITMAP),&bmp);//这里获取位图的大小信息,事实上也是兼容DC绘图输出的范围
SetRect(&rc,0,0,bmp.bmWidth,bmp.bmHeight);
DrawText(memdc,"Center Line Text" -1,&rc,DT_VCENTER|DT_SINGLELINE|DT_CENTER);//在兼容DC中间位置输出字符串
//这样以来我们就相当于把hbmp这个位图加上了文字标注,我们可以把这个增加了文字标注的位图保存起来.一个简单的图像处理基本就OK了.
SelectObject(memdc,holdbmp);//复原兼容DC数据.
DeleteDC(memdc);
//..........
- CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
- CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
- CreateCompatibleDC,CreateCompatibleBitmap,SelectObject详解
- CreateCompatibleDC,CreateCompatibleBitmap,SelectObject详解
- CreateCompatibleDC,CreateCompatibleBitmap,SelectObject详解
- CreateCompatibleDC CreateCompatibleBitmap SelectObject
- 什么是DC,以及CreateCompatibleDC,CreateCompatibleBitmap,SelectObject的作用
- CreateCompatibleDC与CreateCompatibleBitmap
- CreateCompatibleDC与CreateCompatibleBitmap
- CreateCompatibleDC 和 CreateCompatibleBitmap
- CreateCompatibleBitmap 和 CreateCompatibleDC
- CreateCompatibleDC与CreateCompatibleBitmap
- CreateCompatibleDC 与 CreateCompatibleBitmap 小小结
- CreateCompatibleDC 与 CreateCompatibleBitmap 小小结
- CreateCompatibleDC CreateCompatibleBitmap实现双缓冲技术
- 详解CreateCompatibleBitmap 的使用
- SelectObject()函数详解
- SelectObject 函数详解
- jboss访问日志分割或设置
- 不觉得可惜
- 招聘,考试,结构化[1]
- 判断当前登录人是否为管理员!
- 我的CSDN博客正式开通
- CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
- ASP.NET2.0服务器控件之创建自定义控件
- 数据库的删除操作
- DDoS攻击原理及防护方法论(5)--UDP FLOOD攻击
- JTAG接口电路
- 暴雨
- WF 4.0 beta1全新体验
- 排序算法总结
- asp.net页面的生存周期