Как я получаю все установленные шрифты фиксированной ширины?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

15
задан Mediator 4 August 2011 в 20:07
поделиться

2 ответа

Взгляните на:

http://www.pinvoke.net/default.aspx/Structures/LOGFONT.html

Использование одна из структур там, затем цикл по семействам, инстанцируя Шрифта, и получая значение LogFont и проверяя lfPitchAndFamily.

следующий код написан на лету и не протестирован, но что-то как следующее должно работать:

foreach (FontFamily ff in System.Drawing.FontFamily.Families)
{
    if (ff.IsStyleAvailable(FontStyle.Regular))
    {
        Font font = new Font(ff, 10);
        LOGFONT lf = new LOGFONT();
        font.ToLogFont(lf);
        if (lf.lfPitchAndFamily ^ 1)
        {
            do stuff here......
        }
    }
}
13
ответ дан 1 December 2019 в 03:05
поделиться

AFAIK Вы не можете сделать этого пользующийся библиотеками BCL только. Необходимо использовать WinAPI interop.

необходимо проанализировать 2 самых низких бита участник LOGFONT .lfPitchAndFamily. Существует постоянный FIXED_PITCH (означает, что шрифт является фиксированной шириной), который может использоваться в качестве небольшой маски для lfPitchAndFamily.

Вот полезная статья:

Шрифты Перечисления

шрифты Перечисления могут немного сбивать с толку, и если Вы не хотите перечислить все шрифты в своей системе, может быть немного более трудным, чем MSDN предлагает. Эта статья объяснит точно шаги, которые необходимо использовать, чтобы найти каждый шрифт фиксированной ширины в системе и также перечислить каждый возможный размер для каждого отдельного шрифта.

5
ответ дан 1 December 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: