Ein bisschen rumexperimentieren bleibt noch, aber folgender Code ist zur Manipulation der Schrift des Canvas. Beide, Escapement und Orientation sind für die Dreheung des Textes bzw. der Buchstaben von 0 bis 3600 einstellbar. (1 Grad entpricht 10 Einheiten. 90 Grad entsp. 900 Einheiten)
Delphi-Quellcode:
Canvas := FLayer.Bitmap.Canvas;
SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
SetTextCharacterExtra(Canvas.Handle, CharSpacing);
Canvas.Font.Name := FontName;
Canvas.Font.Color := Color;
Canvas.Font.Size := FontSize;
GetObject(Canvas.Font.Handle, SizeOf(LogFont), @LogFont);
LogFont.lfEscapement := Escapement;
LogFont.lfOrientation := Orientation;
LogFont.lfWeight := Bold;
LogFont.lfItalic := Byte(Italic);
LogFont.lfUnderline := Byte(UnderLine);
LogFont.lfStrikeOut := Byte(StrikeOut);
LogFont.lfCharSet := Charset;
if AntiAlias then
LogFont.lfQuality := ANTIALIASED_QUALITY
else
LogFont.lfQuality := NONANTIALIASED_QUALITY;
OldFontHandle := Canvas.Font.Handle;
Canvas.Font.Handle := CreateFontIndirect(LogFont);
try
...
finally
DeleteObject(Canvas.Font.Handle);
Canvas.Font.Handle := OldFontHandle;
end;
SetTextCharacterExtra(Canvas.Handle, 0);
SetGraphicsMode(Canvas.Handle, GM_COMPATIBLE);