我编写了一个小应用程序,它在内存图像上绘制文本并将它们写入文件。基本的 Delphi 代码类似于:
var
Canvas : tCanvas;
Text : WideString;
TextRect : tRect;
begin
Canvas := Bitmap.Canvas;
Canvas.Brush.Color := clBlack;
Canvas.Pen.Color := clBlack;
Canvas.Font.Name := 'Courier New';
Canvas.Font.Size := 11;
Canvas.Font.Color := clWhite;
TextRect := ...; // calculate text position
DrawTextW(Canvas.Handle, PWideChar(Text), Length(Text), TextRect, DT_NOCLIP or DT_NOPREFIX or DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;
不幸的是,根据运行应用程序的计算机的 ClearType 设置,绘制的文本会有所不同。无论本地 ClearType 设置如何,我都希望在我的应用程序中获得一致的输出(无论如何,输出都不会直接显示到屏幕上)。是否有一些 Win32 API 选项可以覆盖本地 ClearType 设置?