Using a Stock Font to Draw Text

The system provides six stock fonts. A stock font is a logical font that an application can obtain by calling the GetStockObject function and specifying the requested font. The following list contains the values that you can specify to obtain a stock font.

Value Meaning
ANSI_FIXED_FONT Specifies a monospace font based on the Windows character set. A Courier font is typically used.
ANSI_VAR_FONT Specifies a proportional font based on the Windows character set. MS Sans Serif is typically used.
DEVICE_DEFAULT_FONT Specifies the preferred font for the specified device. This is typically the System font for display devices; however, for some dot-matrix printers this is a font that is resident on the device. (Printing with this font is usually faster than printing with a downloaded, bitmap font).
OEM_FIXED_FONT Specifies a monospace font based on an OEM character set. For IBM computers and compatibles, the OEM font is based on the IBM PC character set.
SYSTEM_FONT Specifies the System font. This is a proportional font based on the Windows character set, and is used by the operating system to display window titles, menu names, and text in dialog boxes. The System font is always available. Other fonts are available only if they have been installed.
SYSTEM_FIXED_FONT Specifies a monospace font compatible with the System font in early versions of Windows.

 

For more information on fonts, see About Fonts.

The following example retrieves a handle to the variable stock font, selects it into a device context, and then writes a string using that font:

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); 
}

If other stock fonts are not available, GetStockObject returns a handle to the System font (SYSTEM_FONT). You should use stock fonts only if the mapping mode for your application's device context is MM_TEXT.