首页  编辑  

抗锯齿字体

Tags: /超级猛料/Font.字体/   Date Created:
抗锯齿字体
返回的Handle,可以直接赋给Font:
// Font.Handle := GetAntialiasedFont ( Font);
function GetAntialiasedFont( Font : TFont ): THandle;
var LogFont : TLogFont;
begin
 with LogFont do
 begin
   lfHeight := Font.Height;
   lfWidth := 0; { have font mapper choose }
   lfEscapement := 0; { only straight fonts }
   lfOrientation := 0; { no rotation }
   if fsBold in Font.Style then
     lfWeight := FW_BOLD
   else
     lfWeight := FW_NORMAL;
   lfItalic := Byte(fsItalic in Font.Style);
   lfUnderline := Byte(fsUnderline in Font.Style);
   lfStrikeOut := Byte(fsStrikeOut in Font.Style);
   lfCharSet := Byte(Font.Charset);
   if AnsiCompareText(Font.Name, 'Default') = 0 then  // do not
localize
     StrPCopy(lfFaceName, DefFontData.Name)
   else
     StrPCopy(lfFaceName, Font.Name);
   lfQuality := ANTIALIASED_QUALITY;
   { Everything else as default }
   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;
   Result := CreateFontIndirect(LogFont);
 end;
end;