好象有人问过这个问题.
var
r:string;
LogFont:TLogFont;
NewFont,OldFont:THandle;
begin
SetBkMode(Canvas.Handle,Transparent);
LogFont.lfHeight :=20;
LogFont.lfWidth :=10;
LogFont.lfEscapement :=900; // 这一句是要旋转的角度*10
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(100,100,'test');
SelectObject(Canvas.Handle,OldFont);
DeleteObject(NewFont);
end;