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

Описания RDS

Приложения

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

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

А.5.10. Загрузка и сохранение данных блока

А.5.10.7. rdsWriteFontText – запись параметров шрифта в текстовом формате

# Приложения

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

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

#### А.5.10. Загрузка и сохранение данных блока

##### А.5.10.7. rdsWriteFontText – запись параметров шрифта в текстовом формате

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

      void RDSCALL rdsWriteFontTextA(
        int Mask,       // Флаги записываемых параметров
        RDSCSTR Name,   // Имя шрифта (UTF8)
        int SizeHeight, // Высота или размер
        COLORREF Color, // Цвет
        int Charset,    // Набор символов
        int Escapement, // Угол поворота
        BOOL Bold,      // Жирность
        BOOL Italic,    // Курсив
        BOOL Underline, // Подчеркивание
        BOOL StrikeOut  // Перечеркивание
      );
      void RDSCALL rdsWriteFontTextW(
        int Mask,       // Флаги записываемых параметров
        RDSWCSTR Name,  // Имя шрифта (UTF16)
        int SizeHeight, // Высота или размер
        COLORREF Color, // Цвет
        int Charset,    // Набор символов
        int Escapement, // Угол поворота
        BOOL Bold,      // Жирность
        BOOL Italic,    // Курсив
        BOOL Underline, // Подчеркивание
        BOOL StrikeOut  // Перечеркивание
      );
      // Функция-псевдоним
      void RDSCALL rdsWriteFontText(
        int Mask,       // Флаги записываемых параметров
        RDSXCSTR Name,  // Имя шрифта (кодировка по умолчанию)
        int SizeHeight, // Высота или размер
        COLORREF Color, // Цвет
        int Charset,    // Набор символов
        int Escapement, // Угол поворота
        BOOL Bold,      // Жирность
        BOOL Italic,    // Курсив
        BOOL Underline, // Подчеркивание
        BOOL StrikeOut  // Перечеркивание
      );

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

RDS_VISICrIIBBBB (для UTF8) или RDS_VIWsICrIIBBBB (для UTF16)

Параметры

Mask(int)
  Набор битовых флагов, указывающих, какие параметры нужно записать и как интерпретировать переданные значения:

  RDS_GFNAME | Записать имя шрифта, переданное в параметре Name, заключив его в двойные кавычки и предварив его ключевым словом «font».
  RDS_GFSIZE | Записать размер шрифта в типографских точках (points), переданный в параметре SizeHeight, предварив его ключевым словом «size». Не может использоваться одновременно с флагом RDS_GFHEIGHT.
  RDS_GFHEIGHT | Записать высоту шрифта в точках экрана, переданную в параметре SizeHeight, предварив ее ключевым словом «height». Не может использоваться одновременно с флагом RDS_GFSIZE.
  RDS_GFCHARSET | Записать набор символов шрифта, переданный в параметре Charset, предварив его ключевым словом «charset». Русский, ANSI, OEM и символьный наборы записываются ключевыми словами «rus», «ansi», «oem» и «symbol» соответственно, все остальные – в виде целого числа.
  RDS_GFESCAPEMENT | Записать угол поворота шрифта в градусах, переданный в параметре Escapement, предварив его ключевым словом «esc».
  RDS_GFCOLOR | Записать цвет шрифта, переданный в параметре Color, предварив его ключевым словом «color». Цвет записывается в виде одного целого числа.
  RDS_GFBOLD | Если в параметре Bold передано TRUE, записать ключевое слово «bold».
  RDS_GFITALIC | Если в параметре Italic передано TRUE, записать ключевое слово «italic».
  RDS_GFUNDERLINE | Если в параметре Underline передано TRUE, записать ключевое слово «underline».
  RDS_GFSTRIKEOUT | Если в параметре StrikeOut передано TRUE, записать ключевое слово «strikeout».

  Все эти флаги совпадают с флагами, используемыми графической функцией RDS rdsXGSetFont. Кроме них в параметре Mask можно указывать следующие константы, объединяющие несколько флагов вместе:

  RDS_GFFONTALLHEIGHT | Все указанные выше флаги, кроме RDS_GFSIZE (размер шрифта задается высотой в точках экрана).
  RDS_GFFONTBASIC | Все указанные выше флаги, кроме RDS_GFSIZE (размер шрифта задается высотой в точках экрана) и RDS_GFESCAPEMENT (угол поворота не записывается).
  RDS_GFFONTSTYLES | Жирность, курсив, зачеркивание и подчеркивание (флаги RDS_GFBOLD, RDS_GFITALIC, RDS_GFUNDERLINE и RDS_GFSTRIKEOUT).

  Если в параметре Mask передать 0, будут записаны все параметры шрифта, высота его при этом будет считаться заданной в точках экрана, как при указании флага RDS_GFHEIGHT.
Name(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку (char* или wchar_t*, в зависимости от версии функции) с именем шрифта.
SizeHeight(int)
  Размер шрифта в типографских точках (при указанном в Mask флаге RDS_GFSIZE) или в точках экрана (при указанном флаге RDS_GFHEIGHT).
Color(COLORREF)
  Цвет шрифта.
Charset(int)
  Набор символов шрифта.
Escapement(int)
  Угол поворота шрифта в градусах относительно горизонтали.
Bold(BOOL)
  Шрифт жирный (TRUE) или обычный (FALSE).
Italic(BOOL)
  Курсив (TRUE) или обычный шрифт (FALSE).
Underline(BOOL)
  Шрифт подчеркнут (TRUE) или нет (FALSE).
StrikeOut(BOOL)
  Шрифт перечеркнут (TRUE) или нет (FALSE).

Примечания

Эта функция может вызываться только из функции модели блока в момент реакции на событие записи данных блока в текстовом формате RDS_BFM_SAVETXT, во всех остальных случаях вызов игнорируется. Она добавляет описание шрифта к общему набору текстовых данных блока, после завершения реакции на событие RDS_BFM_SAVETXT этот набор будет записан в файл или буфер обмена (в зависимости от того, для чего сохраняются данные блока). Перед описанием, как и между всеми словами внутри описания, добавляется пробел.

Функция добавляет к тексту, сохраняемому блоком, ключевые слова и значения параметров, описывающих шрифт, согласно флагам в параметре Mask. Значения параметров функции, для которых не установлены соответствующие флаги в Mask, могут быть любыми: например, если не установлен флаг RDS_GFNAME, в параметре Name можно передать NULL.

Формат записи цвета, используемый в функции rdsWriteFontText, совместим с функциями rdsStructToFontText, rdsReadFontText, rdsFontTextToStruct и текстовым форматом схем RDS.

Пример

Вызов функции

      rdsWriteFontTextA(RDS_GFFONTBASIC,
          "Times New Roman",20,0xffffff,
          RUSSIAN_CHARSET,0,TRUE,TRUE,FALSE,FALSE);

добавит к текстовым данным блока пробел и следующий текст (порядок пар «ключевое слово – значение» может отличаться, переводов строки внутри текста на самом деле не будет):

      font "Times New Roman" height 20 color 16777215
      charset rus bold italic

См. также

RDS_BFM_SAVETXT, RDS_BFM_LOADTXT, rdsReadFontText, rdsFontTextToStruct, rdsStructToFontText.