Мой код для вызова EnumFontFamiliesEx выглядит следующим образом:
Код: Выделить всё
LOGFONT lf;
memset(&lf, 0, sizeof(lf));
lf.lfCharSet = DEFAULT_CHARSET;
// screenDC is result of CreateCompatibleDC(NULL)
EnumFontFamiliesEx(screenDC, &lf, GetFontsCallback, NULL, 0);

Как видите, общий диалог выбора шрифтов ChooseFont отображает очень разумный список шрифтов, удобен для пользователя и имеет смысл. С другой стороны, мой код отображает длинный список дополнительных шрифтов: шрифты, начинающиеся с «@» (почему? для чего они вообще нужны?), 3 дополнительных варианта шрифта Arial и несколько других шрифтов неизвестного назначения, таких как Aheroni, Andalus, Angsana New, AngsanaUPC и так далее. Это безумие.
Как мне отфильтровать список шрифтов, возвращаемый EnumFontFamiliesEx, чтобы он точно соответствовал списку, показанному в диалоговом окне ChooseFont?
Подробнее здесь: https://stackoverflow.com/questions/112 ... x-function
Мобильная версия