Поделиться через


Использование стокового шрифта для рисования текста

Система предоставляет шесть стандартных шрифтов. Стандартный шрифт — это логический шрифт, который приложение может получить, вызвав функцию GetStockObject и указав запрошенный шрифт. В следующем списке содержатся значения, которые можно указать для получения стандартного шрифта.

Значение Значение
ANSI_FIXED_FONT Задает монопространствовый шрифт на основе набора символов Windows. Обычно используется шрифт Courier.
ANSI_VAR_FONT Задает пропорциональный шрифт на основе набора символов Windows. Обычно используется MS Без засечек.
DEVICE_DEFAULT_FONT Указывает предпочтительный шрифт для указанного устройства. Обычно это шрифт System для устройств отображения; Однако для некоторых принтеров с точками матрицы это шрифт, который находится на устройстве. (Печать с помощью этого шрифта обычно выполняется быстрее, чем печать с загруженным растровым шрифтом).
OEM_FIXED_FONT Задает монопространствовый шрифт на основе набора символов OEM. Для компьютеров IBM и совместимых с ним шрифт oem основан на наборе символов IBM PC.
SYSTEM_FONT Задает шрифт System. Это пропорциональный шрифт, основанный на наборе символов Windows, и используется операционной системой для отображения заголовков окон, имен меню и текста в диалоговых окнах. Шрифт System доступен всегда. Другие шрифты доступны только в том случае, если они установлены.
SYSTEM_FIXED_FONT Указывает монопространствой шрифт, совместимый со шрифтом System в ранних версиях Windows.

 

Дополнительные сведения о шрифтах см. в разделе Сведения о шрифтах.

В следующем примере извлекается дескриптор для стандартного шрифта переменной, выбирается в контексте устройства, а затем записывается строка с помощью этого шрифта:

HFONT hFont, hOldFont; 

// Retrieve a handle to the variable stock font.  
hFont = (HFONT)GetStockObject(ANSI_VAR_FONT); 

// Select the variable stock font into the specified device context. 
if (hOldFont = (HFONT)SelectObject(hdc, hFont)) 
{
    // Display the text string.  
    TextOut(hdc, 10, 50, L"Sample ANSI_VAR_FONT text", 25); 

    // Restore the original font.        
    SelectObject(hdc, hOldFont); 
}

Если другие стандартные шрифты недоступны, GetStockObject возвращает дескриптор системного шрифта (SYSTEM_FONT). Стандартные шрифты следует использовать только в том случае, если режим сопоставления для контекста устройства приложения MM_TEXT.