Функция TextOutW (wingdi.h)

Функция TextOut записывает символьную строку в указанном расположении, используя выбранный в данный момент шрифт, цвет фона и цвет текста.

Синтаксис

BOOL TextOutW(
  [in] HDC     hdc,
  [in] int     x,
  [in] int     y,
  [in] LPCWSTR lpString,
  [in] int     c
);

Параметры

[in] hdc

Дескриптор контекста устройства.

[in] x

Координата x в логических координатах точки ссылки, которую система использует для выравнивания строки.

[in] y

Координата y в логических координатах опорной точки, которую система использует для выравнивания строки.

[in] lpString

Указатель на нарисованную строку. Строка не должна завершаться нулевым завершением, так как cchString указывает длину строки.

[in] c

Длина строки, на которую указывает lpString, в символах.

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

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Интерпретация ссылочной точки зависит от текущего режима выравнивания текста. Приложение может получить этот режим, вызвав функцию GetTextAlign ; приложение может изменить этот режим, вызвав функцию SetTextAlign . Для выравнивания текста можно использовать следующие значения. Можно выбрать только один флаг из тех, которые влияют на горизонтальное и вертикальное выравнивание. Кроме того, можно выбрать только один из двух флагов, изменяющих текущее положение.

Термин Описание
TA_BASELINE Эталонная точка будет находиться в базовой строке текста.
TA_BOTTOM Точка ссылки будет находиться на нижнем крае ограничивающего прямоугольника.
TA_TOP Эталонная точка будет находиться на верхнем крае ограничивающего прямоугольника.
TA_CENTER Эталонная точка будет выровнена по горизонтали по центру ограничивающего прямоугольника.
TA_LEFT Эталонная точка будет находиться на левом краю ограничивающего прямоугольника.
TA_RIGHT Точка ссылки будет находиться на правом краю ограничивающего прямоугольника.
TA_NOUPDATECP Текущая позиция не обновляется после каждого текстового вызова вывода. Ссылочная точка передается в функцию вывода текста.
TA_RTLREADING Выпуск Windows на ближнем Востоке: Текст размещается в порядке чтения справа налево, а не по умолчанию слева направо. Это применимо только в том случае, если выбранный в контексте устройства шрифт является ивритом или арабским языком.
TA_UPDATECP Текущая позиция обновляется после каждого текстового вызова вывода. Текущая позиция используется в качестве эталонной точки.
 

По умолчанию текущая позиция не используется или не обновляется этой функцией. Однако приложение может вызывать функцию SetTextAlign с параметром fMode , установленным для TA_UPDATECP, чтобы разрешить системе использовать и обновлять текущую позицию каждый раз, когда приложение вызывает TextOut для указанного контекста устройства. При установке этого флага система игнорирует параметры nXStart и nYStart при последующих вызовах TextOut .

Когда функция TextOut помещается в скобку пути, система создает путь к тексту TrueType, который содержит каждый символ плюс его поле символа. Область, созданная, является символьным полем минус текст, а не сам текст. Вы можете получить область, заключенную в контур текста TrueType, задав фоновый режим прозрачным перед размещением функции TextOut в скобке пути. Ниже приведен пример кода, демонстрирующий эту процедуру.


// Obtain the window's client rectangle 
GetClientRect(hwnd, &r);

// THE FIX: by setting the background mode 
// to transparent, the region is the text itself 
// SetBkMode(hdc, TRANSPARENT); 

// Bracket begin a path 
BeginPath(hdc);

// Send some text out into the world 
TCHAR text[ ] = "Defenestration can be hazardous";
TextOut(hdc,r.left,r.top,text, ARRAYSIZE(text));

// Bracket end a path 
EndPath(hdc);

// Derive a region from that path 
SelectClipPath(hdc, RGN_AND);

// This generates the same result as SelectClipPath() 
// SelectClipRgn(hdc, PathToRegion(hdc)); 

// Fill the region with grayness 
FillRect(hdc, &r, GetStockObject(GRAY_BRUSH));

Примеры

Пример см. в разделе "Перечисление установленных шрифтов".

Примечание

Заголовок wingdi.h определяет TextOut как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования нейтрализуемого кодировки псевдонима с кодом, который не является кодировкой нейтральным, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

Функции шрифта и текста

Общие сведения о шрифтах и тексте

GetTextAlign

SelectObject

SetBkColor

SetTextAlign

SetTextColor

TabbedTextOut