创建逻辑字体
可以使用“ 字体 通用”对话框显示可用字体。 在应用程序初始化 CHOOSEFONT 结构的成员并调用 CHOOSEFONT 函数后,将显示 ChooseFont 对话框。 用户选择其中一种可用字体并按“ 确定 ”按钮后, ChooseFont 函数使用相关数据初始化 LOGFONT 结构。 然后,应用程序可以调用 CreateFontIndirect 函数,并根据用户的请求创建逻辑字体。 以下示例演示如何执行此操作。
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);
}