Функция ExtTextOut выводит текст используя текущий выбранный шрифт, цвета фона и текста. Вы можете произвольно предоставить размеры, которые используются для отсечения, окраски, или обоих параметров.
Синтаксис
BOOL ExtTextOut( HDC hdc, // дескриптор DC int X, // x-координата отправной точки int Y, // y-координата отправной точки UINT fuOptions, // параметры вывода текста CONST RECT* lprc, // произвольные размеры LPCTSTR lpString, // строка символов UINT cbCount, // число символов в строке CONST INT* lpDx // массив значений пробелов ); |
Значение | Предназначение |
---|---|
ETO_CLIPPED | Текст будет обрезаться по прямоугольнику. |
ETO_GLYPH_INDEX |
Windows 95 и Windows NT 4.0 и
более старшие: Массив lpString
относится к массиву, возвращаемому
функцией GetCharacterPlacement, и должен
анализироваться непосредственно
графическим интерфейсом устройств (GDI),
поскольку никакая более поздняя
ориентированная на конкретный язык
обработка не требуется. Глиф
индексируется только тогда, когда
применяются шрифты TrueType, но флажок может
использоваться для растровых и
векторных шрифтов, чтобы указать, что в
более поздней обработке языка нет
необходимости, а графический интерфейс
устройств должен обработать строку
непосредственно. Заметьте, что все
индексы глифа - 16-разрядные значения
даже при том, что строка предназначена
для растровых шрифтов быть массивом
значений из 8 битов .
Функция ExtTextOutW, индексы глифа сохраняет в метафайле. Однако, чтобы показать на экране правильные символы, метафайл должен быть воспроизведен, используя тот же самый шрифт. Функция ExtTextOutA, индексы глифа не сохраняет. |
ETO_IGNORELANGUAGE | Windows NT 4.0 и позже: Зарезервирован для системного использования. Если приложение устанавливает этот флажок, оно теряет поддержку национальных языков, и, в некоторых случаях, оно не может показать на экране никакого текста вообще. |
ETO_NUMERICSLATIN | Windows 95 and Windows NT 4.0 and later: Чтобы показывать числа с использованием европейских цифр. |
ETO_NUMERICSLOCAL | Windows 95 and Windows NT 4.0 and later: Чтобы показывать числа с использованием цифр, применяемых в данной местности. |
ETO_OPAQUE | Для заполнения прямоугольника должен использоваться текущий цвет фона. |
ETO_PDY | Windows 2000/XP: Когда он устанавливается, массив, на который указывает параметр lpDx содержит пары значений. Первое значение каждой пары, как обычно, расстояние между началами координат смежных символьных ячеек, а второе значение - смещение по вертикальному направлению шрифта. |
ETO_RTLREADING | Windows 95 и Windows NT 4.0 и позже для ближневосточного выпуска Windows: Если это значение установлено, в контексте устройства выбираются и еврейский, и арабский шрифт, строка выводится, используя порядок зеркального изображения. Если это значение не определено, строка выводится в порядке слева направо . Тот же самый результат может быть достигнут установкой значения TA_RTLREADING в параметре функции SetTextAlign. Это значение сохраняется для совместимости вниз. |
Значения ETO_GLYPH_ INDEX и ETO_RTLREADING не могут использоваться вместе. Поскольку ETO_GLYPH_INDEX подразумевает, что вся обработка языка была закончена, функция игнорирует флажок ETO_RTLREADING если он также установлен.
|
Windows 95/98/Me: Это значение может быть не более чем 8192.
Если строка рисуется, возвращаемое значение является отличным от нуля. Однако, если вызывается версия ANSI ExtTextOut с флажком ETO_GLYPH_INDEX, функция возвращает значение ИСТИНА (TRUE) даже при том, что функция ничего не делает.
Если функция завершается ошибкой, возвращаемое значение равно нулю.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите функцию GetLastError.
В общем то не очень верно, что Windows 95/98/Me поддерживает версию Уникода этой функции так же как ее версию ANSI.
Текущие параметры настройки выравнивания текста для заданного контекста устройства определяются , как исходная точка, которая используется для расположения текста. Параметры настройки выравнивания текста извлекаются при помощи вызова функции GetTextAlign. Параметры настройки выравнивания текста изменяются при помощи вызова функции SetTextAlign.
Если параметр lpDx - ПУСТО (NULL), функция ExtTextOut использует заданный по умолчанию интервал между символами. Начало координат символьной ячейки и содержимое массива, на который указывает параметр lpDx определены в логических единицах измерения. Начало координат символьной ячейки задается как левый верхний угол символьной ячейки.
По умолчанию, текущая позиция не используется или модифицируется этой функцией. Однако, приложение может вызвать функцию SetTextAlign с параметром fMode установленным в значение TA_UPDATECP, чтобы разрешить системе использовать и модифицировать текущую позицию каждый раз, когда прикладная программа вызывает функцию ExtTextOut для заданного контекста устройства. Когда этот флажок устанавливается, система игнорирует параметры X и Y при последующих вызовах ExtTextOut.
Для варианта ANSI функции ExtTextOut, массив lpDx имеет то же самое число значений INT сколько имеется байтов в параметре lpString. Для букв набора двухбайтовых символов (DBCS) Вы можете распределить dx в lpDx записях между передним и последующим байтом столько, пока сумма двух байтов составляет требуемый dx. Для букв набора двухбайтовых символов (DBCS) в варианте Уникода функции ExtTextOut, каждый глиф Уникода получает единственную pdx запись.
Обратите внимание! на то, что значения параметра alpDx функции GetTextExtentExPoint - не то же самое, что значения параметра lpDx для ExtTextOut. Чтобы использовать значения alpDx в lpDx, Вы должны сначала их обработать. |
Windows 95/98/Me: ExtTextOutW поддерживается подпрограммой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в требованиях этой подпрограммы для систем Windows 95/98/Me.
Пример смотри в статье Установка шрифтов текстовых строк пунктов меню.
Обзор шрифты и текст, Функции, используемые шрифтами и текстом, GetTextAlign, RECT, SetBkColor, SelectObject, SetTextAlign, SetTextColor
Размещение и совместимость ExtTextOut |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Gdi32.lib |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Реализуется как версии Unicode и ANSI для всех платформ. Поддерживается также подпрограммой Microsoft Layer for Unicode |
Замечания по платформе |
Не имеется |