图形概述-gb∕t 21050-2019信息安全技术网络交换机安全技术要求
6.1图形概述Windows在几个级别上封装GDI(在CLX应用程序中为Qt)。作为一个组件编写者,最重要的是组件在屏幕上显示其图象的方法。当直接调用GDI函数时,需要有一个指向设备上下文的句柄,在此句柄中,选择了各种绘图工具,如画笔、画刷、字体。绘制了图形图象以后,你必须恢复设备上下文到其使用以前的初始状态。 Delphi并不强制你详细地处理图形,而是提供了简单然而完备的接口:组件的画布(Canvas)属性。画布确保它具有一个有效的设备上下文,并在不被使用时释放此上下文。同样地,画布有其自己的代表当前画笔、画刷、字体的属性。画布为你管理所有这些资源,所以,你自己不必关心如何创建、选择并释放象画笔句柄这类事情。你只要告诉画布应该使用什么种类的画笔,然后就什么也不用管了。让Delphi管理图形资源的一个好处是它能为以后使用而缓冲资源,此会加快重复性的操作。比如,你有一个程序,它重复地创建、使用、释放某种画笔工具,那么你就需要每次重复这些步骤。因为Delphi缓存了图形资源,就有你要使用的工具还在缓存中这样的好机会,这样,Delphi就不用重新创建工具,而是使用已存在的工具。使用此机制的一个例子是一个应用程序有几十个打开了的窗体,有几百个控件。每一个这些控件可能有一个或多个TFont属性。尽管这可能导致出现几百或者几千个TFont对象实例,但是大部分应用程序最终只使用二、三个字体句柄,此归功于字体缓存。这里是Delphi的图形代码可以是多么简单的二个示例。第一个使用标准的GDI函数,在窗口上绘制有色蓝轮廓的黄色底椭圆,此方法你可以使用其它的开发工具。第二个在用Delphi写的一个应用程序中使用画布绘制同样的椭圆。 procedure TMyWindow.Paint(PaintDC: HDC; var PaintInfo: TPaintStruct); var
1.19MB
文件大小:
评论区