procedure TForm1.Button1Click(Sender: TObject);
var
r:string;
LogFont:TLogFont;
NewFont,OldFont:THandle;
begin
SetBkMode(Canvas.Handle,Transparent);
LogFont.lfHeight :=60;
{lfHeight指定以逻辑单位标定的字体高度,取值可为
正负或零,对于需要随意定义字体高度的情况下通常取负值,以保证获得实际尺寸的字
体。}
LogFont.lfWidth :=30;
{lfWidth用于指定字体的平均宽度,由于Windows系统
下的大多数字体都是比例字体因而采用平均宽度这个表示方法。若指定为0,则系统会自
动根据适当的比例自动处理宽度。}
LogFont.lfEscapement :=400;
{指定输出方向与当前坐标系X轴之间的以十分之
一度为单位的角度,这里就是40度了。}
LogFont.lfWeight :=0;
LogFont.lfItalic :=0;
LogFont.lfUnderline :=0;
LogFont.lfStrikeOut :=0;
LogFont.lfCharSet :=DEFAULT_CHARSET;
r :='宋体'#0;
move(r[1],LogFont.lfFaceName[0],length(r)+1);
NewFont :=CreateFontIndirect(LogFont);
OldFont :=SelectObject(Canvas.Handle,NewFont);
Canvas.TextOut(10,200,'测试字体');{输出内容是“测试字体”}
SelectObject(Canvas.Handle,OldFont);{用完以后还要还原字体}
DeleteObject(NewFont);
end;