Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.8. Работа с окнами подсистем

А.5.8.5. rdsGetEditorFont – получить параметры шрифта окна подсистемы

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.8. Работа с окнами подсистем

##### А.5.8.5. rdsGetEditorFont – получить параметры шрифта окна подсистемы

Функция rdsGetEditorFont возвращает параметры шрифтов, используемых в окне подсистемы для вывода имен блоков и переменных.

      BOOL RDSCALL rdsGetEditorFont(
        RDS_BHANDLE System,    // Подсистема
        int FontType,          // Тип шрифта (RDS_GEF_*)
        LOGFONTA *pFont,       // Заполняемая структура (ANSI)
        DWORD lfSize,          // Размер структуры *pFont
        int *pPixHeight        // Высота шрифта в точках
      );
      BOOL RDSCALL rdsGetEditorFont(
        RDS_BHANDLE System,    // Подсистема
        int FontType,          // Тип шрифта (RDS_GEF_*)
        LOGFONTW *pFont,       // Заполняемая структура (UTF16)
        DWORD lfSize,          // Размер структуры *pFont
        int *pPixHeight        // Высота шрифта в точках
      );
      // Функция-псевдоним
      BOOL RDSCALL rdsGetEditorFont(
        RDS_BHANDLE System,    // Подсистема
        int FontType,          // Тип шрифта (RDS_GEF_*)
        LOGFONT *pFont,        // Заполняемая структура (кодировка по умолчанию)
        DWORD lfSize,          // Размер структуры *pFont
        int *pPixHeight        // Высота шрифта в точках
      );

Тип указателя на эту функцию

RDS_BBhIpLfDwpI (для ANSI) или RDS_BBhIpLfwDwpI (для UTF16)

Параметры

System(RDS_BHANDLE)
  Идентификатор подсистемы, из которой нужно получить шрифты (ее окно не обязательно должно быть открытым).
FontType(int)
  Вид шрифта, параметры которого нужно получить. В этом параметре передается одна из следующих констант:

  RDS_GEF_BLOCKNAME | Шрифт имен блоков.
  RDS_GEF_VARNAME | Шрифт имен переменных.

pFont(LOGFONTA*, LOGFONTW*, LOGFONT*)
  Указатель на стандартную структуру описания шрифта Windows LOGFONTA или LOGFONTW, которую функция должна заполнить. Если вызывающей программе не нужно описание шрифта, в pFont можно передать NULL.
lfSize(DWORD)
  Размер структуры, на которую указывает pFont (функция использует этот параметр для проверки правильности параметров, поскольку в структуре LOGFONT не предусмотрено специального поля для размера). Если в pFont передано значение NULL, этот параметр игнорируется.
pPixHeight(int*)
  Указатель на целую переменную, в которую функция должна записать высоту запрашиваемого шрифта в точках экрана в масштабе 100%. Если вызывающей программе не нужна эта высота, в pPixHeight можно передать NULL.

Возвращаемое значение

TRUE – параметры шрифта получены, FALSE – в параметрах FontType или lfSize переданы недопустимые значения.

Примечания

Эта функция чаще всего используется в тех случаях, когда желательно вывести какую-либо надпись тем же шрифтом, который используется в окне подсистемы для отображения имен блоков или переменных. Ее также можно использовать для определения высоты шрифта, чтобы, например, программно перемещая блок по рабочему полю, оставить над ним или под ним достаточно места для вывода его имени. Следует обратить внимание на то, что функция с суффиксом «A», заполняющая структуру LOGFONTA, использует для названия гарнитуры шрифта (поле lfFaceName) кодировку ANSI, а не UTF8, поскольку в Windows API не предусмотрено структуры для кодировки UTF8. Если использовать эту функцию вместе с rdsXGSetLogFont, о кодировке можно не беспокоиться, поскольку в этом случае структура будет сначала заполнена а потом считана Windows, и разбирать ее поля не придется.

См. также

rdsGetEditorParameters, rdsXGSetLogFont.