Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как загрузить шрифт?


Автор: kurlyak 20.2.2008, 22:26
Написал программу на MFC загружаю свой собственный шрифт, а его потом нет в отображенни, то есть не знаю как им пользоваться. шрифт создал на основе Arial при помощи генератора шрифтов, и сохранил в своем файле. загружаю файл шрифта функцией так:

Код

            AddFontResource("D:\Fonts\myfont.ttf");

    HFONT hFont;
    
    LOGFONT logfont;

    logfont.lfHeight = -10;
    logfont.lfWidth = 0;
    logfont.lfEscapement = 0;
    logfont.lfOrientation = 0;
    logfont.lfWeight = FW_BOLD;
    logfont.lfItalic = FALSE;
    logfont.lfUnderline = FALSE;
    logfont.lfStrikeOut = FALSE;
    logfont.lfCharSet = RUSSIAN_CHARSET;//ANSI_CHARSET;
    logfont.lfOutPrecision = OUT_DEFAULT_PRECIS;
    logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
    logfont.lfQuality = DEFAULT_QUALITY;
    logfont.lfPitchAndFamily = DEFAULT_PITCH;
    strcpy(logfont.lfFaceName,"myfont");
    
    // Create the font and display list
    hFont = CreateFontIndirect(&logfont);
    pDC->SelectObject (hFont); 

Автор: BorisVorontsov 21.2.2008, 23:29
Цитата(kurlyak @  20.2.2008,  22:26 Найти цитируемый пост)
AddFontResource("D:\Fonts\myfont.ttf");


По-хорошему, после этого надо

Цитата(MSDN)
Any application that adds or removes fonts from the system font table should notify other windows of the change by sending a WM_FONTCHANGE message to all top-level windows in the operating system. The application should send this message by calling the SendMessage function and setting the hwnd parameter to HWND_BROADCAST. 


Цитата(kurlyak @  20.2.2008,  22:26 Найти цитируемый пост)
а его потом нет в отображенни


Отображение -- это где? DC? А ты пытался вывести текст? hFont валиден?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)