Delphi利用Windows GDI实现文字倾斜

时间:2010-02-05 17:12:28  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:。  Windows图形设备接口(Graphics Device Interface)是Windows系统中的图形核心模块,以GDI.EXE形式提供给开发者使用。Windows中的图形基础上是由GDI.EXE中的函数来处理的,它的主要特点是在输出设备上支持与设备无关的图形。在GDI函数中,文本亦被视为一种图形对象,但并非简单的几何方式绘制,因为文本的输出涉及到字体。  根据Windows中字体所用的技术可...
  正文:一、引言

  在Delphi开发环境中,文字的输出效果一般都是头上脚下的"正统"字符,如何输出带有一定倾斜角度的文字以达到特殊的显示效果呢?笔者在制作公章辅助设计软件过程中,通过Windows图形设备接口函数实现了文字呈辐射状分布的功能。

  Windows图形设备接口(Graphics Device Interface)是Windows系统中的图形核心模块,以GDI.EXE形式提供给开发者使用。Windows中的图形基础上是由GDI.EXE中的函数来处理的,它的主要特点是在输出设备上支持与设备无关的图形。在GDI函数中,文本亦被视为一种图形对象,但并非简单的几何方式绘制,因为文本的输出涉及到字体。

  根据Windows中字体所用的技术可以分为3类字体:光栅字体,矢量字体和TrueType字体。其中,True Type字体的主要优点之一是可被任意放大或旋转,在任何尺寸上,都可以达到较为满意的显示效果,尤其,其允许在显示器打印机上使用相同的字体。 Windows为应用程序之所以能够提供设备无关性是通过采用让应用程序创建逻辑对象从而使用物理对象的方法实现的,同样,对于字体的使用也是一样的:应用程序在使用字体时,首先创建逻辑字体,以便Windows从设备中选择一种与之匹配的物理字体,从而达到较为准确的输出效果。

  使用Windows GDI函数实现文字的倾斜效果的基础步骤如下:

  1.取得设备描述表或图形设备的句柄:

   HDC GetDc(Thandle AWinHandle);


  2.创建逻辑字体并设置文字的倾斜度:

   HFont CreateFontIndirect(LogFont 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, LPCTSTR OutStr, int StrLength);


  5.释放不再使用的图形对象(这里为逻辑字体):

   BOOL DeleteObject(HGDIOBJ hObject);


  6.释放设备描述表或图形设备的句柄,函数声明如下:

   ReleaseDc(THandle AWinHandle,HDC Dc);


   注:上述过程要求在窗口的Paint事件中编写重新绘画或绘制文字的代码

  二、程序实现

  在Delphi5.0中新建一个工程,在主窗体的Paint事件中编写如下代码:

 procedure TForm1.FormPaint(Sender: TObject);
  var
   FLogFont : tagLogFontA; //逻辑字体--结构体类型
   hTempFont, hPrevFont: HFONT; //字体句柄
   hTempDC: HDC; //设备描述表或图形设备句柄
   Temphotoshop/ target=_blank class=infotextkey>pstring: string; //输出的文字
  begin
     FLogFont.lfHeight := 10; //字高
   FLogFont.lfWidth := 10; //字宽

"Delphi利用Windows GDI实现文字倾斜"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12790.html


关键字:

关于《Delphi利用Windows GDI实现文字倾斜》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td