Приложения
Приложение А. Функции, константы и структуры 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 rdsXGSetFont. Кроме них в параметре Mask можно указывать следующие константы, объединяющие несколько флагов вместе: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».
Если в параметре Mask передать 0, будут записаны все параметры шрифта, высота его при этом будет считаться заданной в точках экрана, как при указании флага RDS_GFHEIGHT.RDS_GFFONTALLHEIGHT Все указанные выше флаги, кроме RDS_GFSIZE (размер шрифта задается высотой в точках экрана). RDS_GFFONTBASIC Все указанные выше флаги, кроме RDS_GFSIZE (размер шрифта задается высотой в точках экрана) и RDS_GFESCAPEMENT (угол поворота не записывается). RDS_GFFONTSTYLES Жирность, курсив, зачеркивание и подчеркивание (флаги RDS_GFBOLD, RDS_GFITALIC, RDS_GFUNDERLINE и RDS_GFSTRIKEOUT). - 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.