Delphi是具有可视化界面的面向对象编程语言,它以其功能强大、简便易用等诸多特性深受编程人员的喜爱。在Delphi 6 程序中输出文字时,文字一般是水平或垂直的,虽然可以很容易地改变文字的字体、字号、颜色,但要输出带任意倾斜度的文字以达到特殊的显示效果就有点困难了。 Win32 API即为Windows应用编程接口(Application Programming Interface),所有在Win32平台上运行的应用程序都可以调用这些函数,所以通过调用Win32 API 函数可以实现输出文字的特殊显示操作。 实例要求 在窗体的下部有一个按钮,单击按钮后,窗体中间输出一行文字,如:“中国电脑教育报”,输出的文字在窗体的中间顺时针旋转。 重要API函数 将指定的对象选入给定的设备描述表。 function SelectObject(DC:HDC;p2:HGDIOBJ):HGDIOBJ;stdcall; 使用LogFont结构创建一种逻辑字体。 function CreateFontIndirect(const P1:TLogFont):HFont;stdcall; 用当前字体把一个字符串写到指定位置。 function TextOut(DC: HDC; X, Y: Integer; Str: PChar; Count: Integer): BOOL; stdcall; 从内存中删除一个对象(本文指逻辑字体)。 function DeleteObject(p1: HGDIOBJ): BOOL; stdcall; 字体结构 TLogfont结构是实现文字特殊显示的关键,Windows将根据结构中的内容创建出相应的逻辑字体,在Delphi的Windows.pas中定义的TLogFont结构如下: 注意在Windows环境下,每种字体具体输出为何种形式取决于很多因素,需要对以上这些参数进行有效的组合才能达到所要的效果。 创作步骤 在Delphi 6.0中,建立一个新的标准工程。 在窗体下部添加一个Button按钮,将其Caption属性设为“开始旋转”。 添加“开始旋转”按钮的事件处理过程代码: 注:以上代码在Windows me和Delphi 6 中运行通过。 结束语 这是Windows的API函数使用的一个具体例子,希望能对广大读者起到抛砖引玉的作用,笔者对LongFont结构的详细说明,但愿读者能够触类旁通,利用Win32 API接口函数编写出更为丰富多彩的文字效果。 |