J jdelphi Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #1 通过直接在Printer.Canvas上写字打印.内容文字是横向的,表头的文字是纵向的.显示横向的可以使用TextOut比较方便的输出,纵向的怎么办? 如果一个字一个字的显示太麻烦了.
J jdelphi Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #3 是要把"DFW大富翁论坛" 显示成 D F W 大 富 翁 论 坛
车 车金明 Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #4 用WinApi函数DrawText; int DrawText( HDC hDC, // 设备描述符句柄 LPCTSTR lpString, // 显示的字符串 int nCount, // 字符串长度 LPRECT lpRect, // 字符串显示的限制矩形 UINT uFormat // 文本显示格式 );试试下面的例子 procedure TForm1.Button1Click(Sender: TObject); const str='D F W 大 富 翁 论 坛'; var r:TRect; begin r:=Rect(20,30,35,150); DrawText(printer.Canvas.Handle,pchar(str),length(str),r,DT_WORDBREAK OR DT_CENTER); end;
用WinApi函数DrawText; int DrawText( HDC hDC, // 设备描述符句柄 LPCTSTR lpString, // 显示的字符串 int nCount, // 字符串长度 LPRECT lpRect, // 字符串显示的限制矩形 UINT uFormat // 文本显示格式 );试试下面的例子 procedure TForm1.Button1Click(Sender: TObject); const str='D F W 大 富 翁 论 坛'; var r:TRect; begin r:=Rect(20,30,35,150); DrawText(printer.Canvas.Handle,pchar(str),length(str),r,DT_WORDBREAK OR DT_CENTER); end;