Delphi中文字旋转
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
LogcalFnt:TLogFont;
TempFont,NewFont:integer;
sDispStr:Pchar;
begin
LogcalFnt.lfHeight:=10;//字高
LogcalFnt.lfWidth:=10;//字宽
LogcalFnt.lfEscapement:=0;//倾斜度
LogcalFnt.lfOrientation:=0;//方向与倾斜度取值相同
LogcalFnt.lfWeight:=400;//字体笔画粗细程度
LogcalFnt.lfItalic:=0;//没有斜体效果
LogcalFnt.lfUnderline:=0;//没有下划线
LogcalFnt.lfStrikeOut:=0;//没有删除线
LogcalFnt.lfCharSet:=0;//默认字符集
LogcalFnt.lfOutPrecision:=0;//系统默认值
LogcalFnt.lfClipPrecision:=0;//系统默认值
LogcalFnt.lfQuality:=0;//系统默认值
LogcalFnt.lfPitchAndFamily:=0;//系统默认值
LogcalFnt.lfFaceName:='Arial'+Chr(0);//字体名称
sDispStr:='中国电脑教育报';
i:=3600;
while (i>-1) do //自X轴正方向开始顺时针旋转
begin
LogcalFnt.lfEscapement:=i; //按一定的步长赋初值
TempFont:=CreateFontIndirect(LogcalFnt);
//创建逻辑字体
NewFont:=SelectObject(Form1.Canvas.Handle,TempFont); //取得当前字体,并替换为新字体
TextOut(Form1.Canvas.Handle,form1.width div 2,form1.height div 2,sDispStr,length(sDispStr));
//在窗体中间为起点输出文字
TempFont:=SelectObject(Form1.Canvas.Handle,NewFont); //还原替换的字体
DeleteObject(TempFont); //删除逻辑字体
i:=i-200; //旋转步长为10度
end;
end;
var
i: integer;
LogcalFnt:TLogFont;
TempFont,NewFont:integer;
sDispStr:Pchar;
begin
LogcalFnt.lfHeight:=10;//字高
LogcalFnt.lfWidth:=10;//字宽
LogcalFnt.lfEscapement:=0;//倾斜度
LogcalFnt.lfOrientation:=0;//方向与倾斜度取值相同
LogcalFnt.lfWeight:=400;//字体笔画粗细程度
LogcalFnt.lfItalic:=0;//没有斜体效果
LogcalFnt.lfUnderline:=0;//没有下划线
LogcalFnt.lfStrikeOut:=0;//没有删除线
LogcalFnt.lfCharSet:=0;//默认字符集
LogcalFnt.lfOutPrecision:=0;//系统默认值
LogcalFnt.lfClipPrecision:=0;//系统默认值
LogcalFnt.lfQuality:=0;//系统默认值
LogcalFnt.lfPitchAndFamily:=0;//系统默认值
LogcalFnt.lfFaceName:='Arial'+Chr(0);//字体名称
sDispStr:='中国电脑教育报';
i:=3600;
while (i>-1) do //自X轴正方向开始顺时针旋转
begin
LogcalFnt.lfEscapement:=i; //按一定的步长赋初值
TempFont:=CreateFontIndirect(LogcalFnt);
//创建逻辑字体
NewFont:=SelectObject(Form1.Canvas.Handle,TempFont); //取得当前字体,并替换为新字体
TextOut(Form1.Canvas.Handle,form1.width div 2,form1.height div 2,sDispStr,length(sDispStr));
//在窗体中间为起点输出文字
TempFont:=SelectObject(Form1.Canvas.Handle,NewFont); //还原替换的字体
DeleteObject(TempFont); //删除逻辑字体
i:=i-200; //旋转步长为10度
end;
end;