在VB5中将英文字母及阿拉伯数字旋转任意角度

王朝厨房·作者佚名  2007-01-04
宽屏版  字体: |||超大  

在Visual Basic 5.0中要使文本转动任意角度,需涉及一系列的Windows

编程的API结构和函数。首先需要了解逻辑字体的结构,如下所示:

typedef struct tagLOGFONT{

LONG lfHeight;

LONG lfWidth;

LONG lfEscapement;

LONG lfOrientation;

LONG lfWeight;

BYTE lfItalic;

BYTE lfUnderline;

BYTE lfStrikeOut;

BYTE lfCharSet;

BYTE lfOutPrecision;

BYTE lfClipPrecision;

BYTE lfPitchAndFamily;

TCHAR lfFaceName[LF-FACESIZE];

} LOGFONT;

在这一结构中,lfEscapement的值就是字体旋转的角度。注意,其单位

是十分之一度,因此取值范围为0至3600。在使用中先定义好逻辑字体,再用

CreateFontIndirect函数建立逻辑字体,如果建立成功将返回这一逻辑字体

的句柄,否则返回定值。在逻辑字体创建成功后,可以用TextOut函数针对某

一设备(一般可以是一个图片框)输出文字信息。TextOut函数定义如下:

BOOL TextOut(HDC hdc,int nXStart,int nYStart,LPCTSTR lpString,int cbString),

其中hdc为设备句柄,nXStart、nYStart为文本输出的开始点坐标,lpString

为待输出文本的地址,cbString为文本串长度。由于要使用到设备句柄,因

此,建议将文本输出到图片框中,因为在VB中可以直接取到图片框的设备句

柄属性供调用,而Label框则没有这一属性,需要用另外的Windows API函数

来取得,实现起来较为麻烦。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有