Delphi 3 中 Win32 图形 API 的绘画与绘图功能
1. 引言
Windows 提供了大量用于绘制简单图形和图形基元的函数。尽管 Windows 具备强大的高端图形处理能力,但有时绘制简单图形是与用户进行有效沟通的最直接方式。例如,在图像的某一部分周围绘制一个简单的矩形,就可以表明该部分已被选中。Delphi 将本章中介绍的大部分函数封装为 TCanvas 对象的方法和属性,但 VCL 的复杂性有时会带来不便,此时直接使用 Windows API 可能是更好的选择。
2. 图形对象
2.1 图形对象的概念
为了在设备上下文中进行绘制,Windows 需要明确知道要绘制的对象的具体属性,如颜色、宽度等。这些属性被封装在图形对象中。所有的 CreateXXX 函数(如 CreateBrush、CreateBitmap 或 CreatePen)都会返回一个图形对象的句柄,该句柄在内部引用包含所有属性定义的数据。
2.2 图形对象的使用
要使用大多数图形对象,需要使用 SelectObject 函数将其选入设备上下文。一旦对象被选入设备上下文,那些需要该特定对象的函数将自动使用它。例如,使用 CreatePen 创建一支新笔并将其选入设备上下文后,后续所有需要笔的绘图函数都会自动使用这支笔。需要注意的是,在任何给定时间,每种类型的对象只能有一个被选入设备上下文。
2.3 图形对象的删除
当图形对象不再需要时,必须将其删除。每个图形对象句柄都代表一定的内存和资源,如果不妥善删除,可能会导致内存泄漏。删除图形对象时,首先要将其从设备上下文中取消选择。具体做法是在选
超级会员免费看
订阅专栏 解锁全文
1576

被折叠的 条评论
为什么被折叠?



