当前位置:编程学习 > Delphi >>

如何用Delphi 6 编程让文本动起来

 

  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结构如下:

  type

  TLogFontA = packed record

  lfHeight: Longint;

  //以逻辑单位标定的字体高度,取值可为正负或零。

  lfWidth: Longint;

  //字体的平均宽度,若指定为0,则系统会自动根据适当的比例自动处理宽度。

  lfEscapement: Longint;

  //输出方向与当前坐标系X轴之间的以十分之一度为单位的角度。

  lfOrientation: Longint;

  //每个字符与当前坐标系X轴之间的以十分之一度为单位的角度。在Windows 95中这个值等同于lfEscpement。

  lfWeight: Longint;

  //范围为从0至1000的字体加重程度,400是标准字体,700是加重字体,0表示采用默认值。

  lfItalic: Byte; //不为0表示采用斜体字。

  lfUnderline: Byte; //不为0表示带下划线。

  lfStrikeOut: Byte; //不为0表示带删除线。

  lfCharSet: Byte; //指定字体集。

  lfOutPrecision: Byte;

  //输出精度,用于确定对前面一些设定值的精确程度。

  lfClipPrecision: Byte;

  //裁剪精度,就是去掉图形中落在视图以外的部分,有助于提高图形的处理速度。

  lfQuality: Byte; //指定输出质量。

  lfPitchAndFamily: Byte; //指定字体的Pitch和Family。

  lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar;

   //指定采用的字体名称,且LF_FACESIZE=32。

  end;

  

补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,