设备上下文(DC)与内存设备上下文中的位图与画刷属性的一些零碎

设备上下文是Windows编程中的关键概念,用于控制设备的绘制属性。本文深入探讨了DC如何管理画笔、位图和画刷,并通过内存设备上下文解释了如何在内存中处理图像。通过示例代码,展示了如何使用CreateCompatibleDC、SelectObject等函数进行位图操作,并讨论了位图和画刷的关系,包括位图被选入内存DC时的副本行为以及CreatePatternBrush创建的位图画刷与原位图的独立性。
摘要由CSDN通过智能技术生成

设备内容

众所周知,设备上下文是一种包含有关某个设备,如显示器、打印机等的绘制属性信息的WINDOWS数据结构。所有绘制调用都是通过设备上下文对象进行,其中这些对象中包含了画笔,位图,画刷等。设备内容与特定的显示设备相关,对于视讯显示器,设备内容总是与显示器上的特定的窗口相关。

设备内容中的有些值是图形属性,这些属性定义了GDI绘图函数的工作细节,for example,TextOut,设备内容的属性中确定了文字的颜色,文字的背景色,x坐标,Y坐标映射到所要显示区域的方式,还有显示这些文字时系统使用的字体。

当一个程序需要绘图时,首先要取得设备内容句柄,得到此句柄后,Windows用内定的属性填充内部设备内容结构中。绘制完毕之后,必须释放设备内容句柄。

内存设备内容

通过使用一个特别为位图操作的设备环境,可以使得应用程序将输出操作在内存中而不是将其发送到实际的设备中。内存设备环境使得系统将一部分内存当作虚拟设备。它就是一个在内存中的位数组,使得应用程序可以使用它为在一个标准的绘图表面创建位图临时存储颜色数据。由于位图是和设备兼容的,因此内存设备环境在某些时候也就当作兼容设备环境。

内存设备环境作为一个特殊的环境存储位图图像。应用程序可以调用 CreateCompatibleDC 创建一个内存设备环境。

内存设备环境中初始的位图只是一个简单的占位符。它的尺寸为1*1像素。在应用程序进行绘制之前,必须通过调用 SelectObject 选择一个恰当宽度和高度的位图到该内存环境中。要创建一个恰当尺寸的位图,可以使用 CreateBitmap , CreateBitmapIndirect , or CreateCompatibleBitmap 三个函数。当位图被选进内存设备环境后,系统用一个足够大的数组取代单位数组来存储指定的矩形像素的颜色信息。

当应用程序传递一个由 CreateCompatibleDC 返回的句柄到绘制函数时,被要求的输出并不会在设备的绘制表面显示。相反,系统会存储线段,曲线,文字或者区域的颜色信息到位数组中。应用程序可以复制存储在内存中的图像到绘制表面通过调用 BitBlt 函数,并将内存设备环境作为源设备环境,窗口或者屏幕设备环境作为目标设备环境。

例子1:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值