大家好,欢迎来到IT知识分享网。
//声明: CreateFontIndirect( const p1: TLogFont {字体结构} ): HFONT; {返回新字体指针} //TLogFont 是 tagLOGFONTA 结构的重定义: tagLOGFONTA = packed record lfHeight: Longint; {字体高度} lfWidth: Longint; {字体平均宽度} lfEscapement: Longint; {角度, 单位是 1/10 度} lfOrientation: Longint; {基线角度} lfWeight: Longint; {粗体, 取值: 0-1000} lfItalic: Byte; {斜体} lfUnderline: Byte; {下划线} lfStrikeOut: Byte; {删除线} lfCharSet: Byte; {字符集} lfOutPrecision: Byte; {输出精度} lfClipPrecision: Byte; {剪裁精度} lfQuality: Byte; {输出质量} lfPitchAndFamily: Byte; {间距及字族} lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar; {字样名称} end;
以上是要用到的一个数据结构,unit windows.
使用方法详细:
{定义字体特征} FontInfo.lfHeight := 0; {赋值 0, 系统自动给一个值} FontInfo.lfWidth := 0; {赋值 0, 系统自动给一个值} FontInfo.lfEscapement := 0; {无角度} FontInfo.lfWeight := 500; {中等加粗} FontInfo.lfItalic := 0; {非斜体} FontInfo.lfUnderline := 0; {无下划线} FontInfo.lfStrikeOut := 0; {无删除线} FontInfo.lfFaceName := '宋体'; FH1 := CreateFontIndirect(FontInfo); FH2 := SelectObject(Canvas.Handle, FH1); {用 CreateFontIndirect 建立逻辑字体; 用 SelectObject 选人设备; 并返回字体句柄} TextOut(Canvas.Handle, X, Y, str, Length(str)); DeleteObject(FH1); DeleteObject(FH2);
详细:万一的博客
想要循环的文字:改变属性Escapement,循环输出
注意点:
FH1 := CreateFontIndirect(FontInfo); FH2 := SelectObject(Canvas.Handle, FH1);
这两个用完以后要及时删除!!
DeleteObject(FH1); DeleteObject(FH2);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33870.html