Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Creating a Logical Font

You can use the Font common dialog box to display available fonts. The ChooseFont dialog box is displayed after an application initializes the members of a CHOOSEFONT structure and calls the CHOOSEFONT function. After the user selects one of the available fonts and presses the OK button, the ChooseFont function initializes a LOGFONT structure with the relevant data. Your application can then call the CreateFontIndirect function and create a logical font based on the user's request. The following example demonstrates how this is done.

HFONT FAR PASCAL MyCreateFont( void ) 
{ 
 CHOOSEFONT cf; 
 LOGFONT lf; 
 HFONT hfont; 
 
 // Initialize members of the CHOOSEFONT structure. 
 
 cf.lStructSize = sizeof(CHOOSEFONT); 
 cf.hwndOwner = (HWND)NULL; 
 cf.hDC = (HDC)NULL; 
 cf.lpLogFont = &lf; 
 cf.iPointSize = 0; 
 cf.Flags = CF_SCREENFONTS; 
 cf.rgbColors = RGB(0,0,0); 
 cf.lCustData = 0L; 
 cf.lpfnHook = (LPCFHOOKPROC)NULL; 
 cf.lpTemplateName = (LPSTR)NULL; 
 cf.hInstance = (HINSTANCE) NULL; 
 cf.lpszStyle = (LPSTR)NULL; 
 cf.nFontType = SCREEN_FONTTYPE; 
 cf.nSizeMin = 0; 
 cf.nSizeMax = 0; 
 
 // Display the CHOOSEFONT common-dialog box. 
 
 ChooseFont(&cf); 
 
 // Create a logical font based on the user's 
 // selection and return a handle identifying 
 // that font. 
 
 hfont = CreateFontIndirect(cf.lpLogFont); 
 return (hfont); 
} 

Feedback

Was this page helpful?

Additional resources