15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как определить, установлены ли в системе шрифты TrueType.

Компилятор: C++ Builder

Следующий пример показывает, установлен ли в системе хотя бы один TrueType шрифт:

//Прототипы в классе формы:

private:
   RASTERIZER_STATUS rs;
   bool IsTrueTypeAvailable();

//Implementation
bool TForm1::IsTrueTypeAvailable()
{
    memset(rs, NULL, sizeof(rs));
    if(GetRasterizerCaps(&rs, sizeof(rs)) != true)
    	return false;
    if((rs.wFlags & TT_AVAILABLE) != TT_AVAILABLE)
    	return false;
    if((rs.wFlags & TT_ENABLED) != TT_ENABLED)
    	return false;
    return true;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if(IsTrueTypeAvailable() == false)
    	ShowMessage("True Type Fonts are not available");
    else
    	ShowMessage("True Type Fonts are available");
}

Последняя функция, это макрос, объявленный в <WindowsX.h>