Использование GDI + для рисования текста на стекле:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
Вы заметите, что текст с включенным ClearType рисует очень плохо на стекле:

Но при отключенном стекле текст, конечно, нарисует нормально:

Для сравнения: Сглаживание шрифта сглаживания :

А вот без сглаживания шрифтов :

Примечание : сглаживание шрифтов не выглядит лучше, чем на самом деле, поскольку StackOverflow изменяет размеры изображений на мониторе.
Как нарисовать текст ClearType на стекле?
Примечания
- Win32 native
- не .NET ( т. Е. нативный)
- not Winforms ( т.е. native)
- GDI + ( то есть родной)
Что говорит Марк, так это то, что вы не можете соблюдать пользовательские настройки для рендеринга текста (т. Е. "SystemDefault
". ClearType не работает на стекле и его нельзя использовать.
Другими словами, если вы выполняете рендеринг на стекле, вы должны переопределить рендеринг текста с помощью:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
В противном случае вы должны оставить TextRenderingHint
по умолчанию TextRenderingHintSystemDefault
.
Смотри также