Создание логического шрифта

Вы можете использовать стандартное диалоговое окно Шрифт (Font), чтобы показать на экране доступные шрифты. Диалоговое окно Выбор шрифта (ChooseFont) появляется на экране после того, как приложение инициализирует члены структуры CHOOSEFONT и вызовет функцию ChooseFont. После того, как пользователь выберет один из доступных шрифтов и нажмет кнопку OK, функция ChooseFont инициализирует структуру LOGFONT с необходимыми данными. Ваше приложение может затем вызывать функцию CreateFontIndirect и создать логический шрифт, основанный на запросе пользователя. Нижеследующий пример демонстрирует как это делается.

HFONT FAR PASCAL MyCreateFont( void ) 
{ 
    CHOOSEFONT cf; 
    LOGFONT lf; 
    HFONT hfont; 
 
    // Инициализация членов структуры CHOOSEFONT. 
 
    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; 
 
    // Показываем на экране стандартное диалоговое окно CHOOSEFONT. 
 
    ChooseFont(&cf); 
 
    // Создадим логический шрифт, базирующийся на выборе пользователя, и возвратим 

    // дескриптор идентификации этого шрифта. 
 
    hfont = CreateFontIndirect(cf.lpLogFont); 
    return (hfont); 
} 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz