在VB5中將英文字母及阿拉伯數字旋轉任意角度
發表于:2007-07-14來源:作者:點擊數:
標簽:
在Visual Basic 5.0中要使文本轉動任意角度,需涉及一系列的 Windows 編程的API結構和函數。首先需要了解邏輯字體的結構,如下所示: typedef struct tagLOGFONT{ LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE
在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函數
來取得,實現起來較為麻煩。
原文轉自:http://www.anti-gravitydesign.com