Функция TextOutA (wingdi.h)
Функция TextOut записывает символьную строку в указанном расположении, используя выбранный в данный момент шрифт, цвет фона и цвет текста.
Синтаксис
BOOL TextOutA(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] LPCSTR lpString,
[in] int c
);
Параметры
[in] hdc
Дескриптор контекста устройства.
[in] x
Координата x в логических координатах эталонной точки, которую система использует для выравнивания строки.
[in] y
Координата y в логических координатах эталонной точки, которую система использует для выравнивания строки.
[in] lpString
Указатель на строку, которая должна быть нарисована. Строка не должна быть завершена нулевой, так как cchString указывает длину строки.
[in] c
Длина строки , на которую указывает lpString, в символах.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ненулевое.
Если функция завершается ошибкой, возвращаемое значение равно нулю.
Замечания
Интерпретация эталонной точки зависит от текущего режима выравнивания текста. Приложение может получить этот режим, вызвав функцию GetTextAlign; приложение может изменить этот режим, вызвав функцию SetTextAlign. Для выравнивания текста можно использовать следующие значения. Только один флаг можно выбрать из тех, которые влияют на горизонтальное и вертикальное выравнивание. Кроме того, можно выбрать только один из двух флагов, которые изменяют текущую позицию.
По умолчанию текущая позиция не используется или обновляется этой функцией. Однако приложение может вызывать функцию 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 |
См. также
шрифтов и текста
tabbedTextOut