논리 글꼴 만들기
글꼴 일반 대화 상자를 사용하여 사용 가능한 글꼴을 표시할 수 있습니다. 애플리케이션이 CHOOSEFONT 구조체의 멤버를 초기화하고 CHOOSEFONT 함수를 호출하면 ChooseFont 대화 상자가 표시됩니다. 사용자가 사용 가능한 글꼴 중 하나를 선택하고 확인 단추를 누르면 SelectFont 함수는 관련 데이터를 사용하여 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);
}