Delphi利用WindowsGDI实现文字倾斜
1.简介
在Delphi开发环境中,文字的输出效果一般是顶部和底部的“正统”字符。如何输出具有一定倾斜角度的文字以达到特殊的显示效果?在制作公章辅助设计软件的过程中,作者通过Windows图形设备接口函数实现了字符放射状分布的功能。
Windows图形设备接口(Graphics Device Interface)是Windows系统中图形的核心模块,以GDI.EXE的形式提供给开发者。Windows中的图形基本上是由GDI.EXE中的函数处理的。它的主要特点是在输出设备上支持设备无关的图形。在GDI函数中,文本也被视为一个图形对象,但并不是简单的用几何方式绘制,因为文本的输出涉及到字体。
根据Windows字体使用的技术,有三种字体:光栅字体、矢量字体和TrueType字体。其中,True Type字体的一个主要优点就是可以随意放大或旋转,任意大小都能达到满意的显示效果。特别是,它允许在显示器和打印机上使用相同的字体。Windows之所以能为应用程序提供设备独立性,是因为应用程序创建逻辑对象来使用物理对象。同样,字体的使用也是一样的:应用程序在使用字体时,首先创建逻辑字体,这样Windows就可以从设备中选择一个匹配的物理字体,从而达到更准确的输出效果。
二。内容
使用Windows GDI函数实现文本倾斜效果的基本步骤如下:
1.获取设备描述表或图形设备的句柄:hdcgetdc(感谢一个winhandle);
2。创建逻辑字体并设置文本的倾斜度:hfont create font indirect(log font far * iplf),
其中,Iplf是tagLogFont结构,通过设置其lfEscapement可以设置字符的倾斜度(实际度数的10倍),如:0度-正常字体、450度-45度斜向左上方、900度-直向左等。
3.在设备列表中选择逻辑字体,以便Windows选择与之匹配的物理字体,新字体替换旧字体:
HGDIOBJ SelectObject(HDC hdc,HGDIOBJ HGDIOBJ);
注意:在此之前,现在
4.使用当前设备的字体进行文本输出:Bool Textout (HDC HDC,Int Posx,Int Posy,LPCTSTROUTSTR,Int STRENGTH);
5。释放未使用的图形对象(此处为逻辑字体):bool delete对象(hgdibj h对象);
0条评论