首页  编辑  

旋转字体

Tags: /超级猛料/Font.字体/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` function CreateRotatedFont(Font: TFont; Angle: Integer): HFont;

var

 LogFont: TLogFont;

begin

 FillChar(LogFont, SizeOf(LogFont), 0);

 with LogFont do begin

   lfHeight := Font.Height;

   lfWidth := 0;

   lfEscapement := Angle * 10;

   lfOrientation := 0;

   if fsBold in Font.Style then lfWeight := FW_BOLD

   else lfWeight := FW_NORMAL;

   lfItalic := Ord(fsItalic in Font.Style);

   lfUnderline := Ord(fsUnderline in Font.Style);

   lfStrikeOut := Byte(fsStrikeOut in Font.Style);

{$IFDEF RX_D3}

   lfCharSet := Byte(Font.Charset);

   if AnsiCompareText(Font.Name, 'Default') = 0 then

     StrPCopy(lfFaceName, DefFontData.Name)

   else

     StrPCopy(lfFaceName, Font.Name);

{$ELSE}

 {$IFDEF VER93}

   lfCharSet := Byte(Font.Charset);

 {$ELSE}

   lfCharSet := DEFAULT_CHARSET;

 {$ENDIF}

   StrPCopy(lfFaceName, Font.Name);

{$ENDIF}

   lfQuality := DEFAULT_QUALITY;

   lfOutPrecision := OUT_DEFAULT_PRECIS;

   lfClipPrecision := CLIP_DEFAULT_PRECIS;

   case Font.Pitch of

     fpVariable: lfPitchAndFamily := VARIABLE_PITCH;

     fpFixed: lfPitchAndFamily := FIXED_PITCH;

     else lfPitchAndFamily := DEFAULT_PITCH;

   end;

 end;

 Result := CreateFontIndirect(LogFont);

end;