Поделиться через


Функция 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wingdi.h (включая Windows.h)
библиотеки Gdi32.lib
DLL Gdi32.dll

См. также

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

шрифтов и текста

GetTextAlign

SelectObject

SetBkColor

SetTextAlign

SetTextColor

tabbedTextOut