如何垂直显示文本(100分)

  • 主题发起人 主题发起人 Justin_sh
  • 开始时间 开始时间
J

Justin_sh

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]有什么方法可以垂直地显示文本,请注意是一般文本旋转90度的效果,<br>好比开始菜单的“Windows98”那样。
 
这个问题不复杂,你可以用相应的API函数,这里给你一个刚写的代码?你在窗体上放一个<br>按钮就可以了。<br>unit Unit1;<br><br>interface<br><br>uses<br>&nbsp; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br>&nbsp; Dialogs, StdCtrls;<br><br>type<br>&nbsp; TForm1 = class(TForm)<br>&nbsp; &nbsp; Button1: TButton;<br>&nbsp; &nbsp; procedure FormClose(Sender: TObject; var Action: TCloseAction);<br>&nbsp; &nbsp; procedure Button1Click(Sender: TObject);<br>&nbsp; private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; public<br>&nbsp; &nbsp; { Public declarations }<br>&nbsp; end;<br><br>var<br>&nbsp; Form1: TForm1;<br>&nbsp; lf:logfont;<br>&nbsp; myfont:hgdiobj;<br>&nbsp; my1font:hgdiobj;<br>&nbsp; hdc1:hdc;<br>implementation<br><br>{$R *.dfm}<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>hdc1:=getdc(self.Handle);<br>lf.lfEscapement:=900;//关键在这里!设置旋转就可以达到你所需要的目的了!<br>lf.lfHeight:=15;<br>lf.lfWidth:=15;<br>lf.lfWeight:=400;<br>myfont:=createfontindirect(lf);<br>my1font:=selectobject(hdc1,myfont);<br>textout(hdc1,10,200,pchar('Windows98'),9);<br>settextcolor(hdc1,rgb(0,0,225));<br>myfont:=selectobject(hdc1,my1font);<br>end;<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br>myfont:=selectobject(hdc1,my1font);<br>deleteobject(myfont);<br>end;<br>end.<br>这个代码是刚刚为你这个问题而写的,应该说你的问题已经解决了(当然,窗体的PAINT过<br>程你要重写,不然改变窗体后字体会不见的。)我调试过了,没有任何问题,可以给分给<br>我咯!如果有什么问题可以给我 e-mail:tufeiping@sina.com,祝成功!!!
 
晶晶的做法可行,你在修改润色一下,比如加个背景,文字效果会更好
 
多人接受答案了。
 
后退
顶部