Как узнать, какие шрифты установлены в системе?
Автор: OlegGG, trainer
Исходная ссылка: - - -
Как получить список всех установленных шрифтов?
Использовать TScreen::Fonts.
Пример:
Memo1->Lines->Text = "В системе установлены следующие шрифты:\n\n" + Screen->Fonts->Text;
Как получить список только моноширинных шрифтов?
/* функция-перечислитель для шрифтов */
int CALLBACK EnumFontsProc(LOGFONT * lplf, TEXTMETRIC * lptm, DWORD dwType, LPARAM lpData){
if( (lptm->tmPitchAndFamily&TMPF_FIXED_PITCH) == 0 ) {
TStrings * strlist = (TStrings *)lpData;
strlist->Add(lplf->lfFaceName);
}
return TRUE;
}
/* обработчик нажатия на кнопку, по которому будем создавать список шрифтов */
void __fastcall TForm1::Button1Click(TObject *Sender) {
/* Очищаем TMemo */
Memo1->Lines->Clear();
/* инициируем перечисление */
EnumFonts(Canvas->Handle,NULL,(FONTENUMPROC)&EnumFontsProc,(LPARAM)Memo1->Lines);
/* теперь в Memo1 отображен список моноширинных шрифтов */
}
|