Функция TextOut записывает строку символов в заданном месте, используя текущий выбранный шрифт, цвет фона и цвет текста.
Синтаксис
hdc, // дескриптор DC int nXStart, // x-координата начальной позиции int nYStart, // y-координата начальной позиции LPCTSTR lpString, // строка символов int cbString // число символовBOOL TextOut( HDC ); |
Параметры
hdc
[in] Дескриптор контекста устройства.
nXStart
[in] Устанавливает x-координату, в логических координатах, контрольной точки, которую система использует для выравнивания строки.
nYStart
[in] Устанавливает y-координату, в логических координатах, контрольной точки, которую система использует для выравнивания строки.
lpString
[in] Указатель на строку, которую нужно написать. Строка не должна завершаться нуль-терминатором, так как параметр
cbString задает длину строки.cbString
[in] Устанавливает длину строки. Для функции ANSI, это количество BYTE (байтов), а для функции Unicode, это является количеством WORD (слов).
Обратите внимание!, что для функции ANSI, символы в кодовых страницах SBCS (Набора однобайтовых символов) занимают один байт каждый, в то время как большинство символов в кодовых страницах DBCS (Набора двухбайтовых символов) занимают два байта; для функций Unicode большинство текущих заданных символов Unicode (которые в формате Basic Multilingual Plane (BMP) занимают одно слово (WORD), в то время как заменители символа Unicode - два слова (WORD). |
Windows 95/98/Me: Это значение не может превышать 8192.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль.
Windows NT/2000/XP: Чтобы получать расширенные данные об ошибках, вызовите функцию GetLastError.
Замечания
Хотя это и не истина, но в большинстве случаев Windows 95/98/Me поддерживает версию Unicode этой функции также, как версии
ANSI.Интерпретация контрольной точки зависит от текущего режима выравнивания текста. Приложение может получить этот режим, при помощи вызова
функции GetTextAlign; прикладная программа может изменять этот режим, вызывая функцию SetTextAlign.По умолчанию, текущая позиция не используется и не модифицируется этой функцией. Однако, приложение может вызывать функцию
SetTextAlign с параметром fMode установленным в TA_UPDATECP, чтобы разрешить системе использовать и модифицировать текущую позицию каждый раз, когда прикладная программа вызывает функцию TextOut для заданного контекста устройства. Когда этот флажок установлен, система игнорирует параметры nXStart и nYStart при последующих вызовах TextOut.Когда внутри функции
TextOut помещается квадратные скобки пути, система создает маршрут для текста TrueType, который включает в себя каждый символ плюс его знакоместо. Созданный регион является знакоместом без текста, а не текст непосредственно. Вы можете получить этот регион, заключая контур текста TrueType, при помощи установки, перед размещением в функции TextOut квадратных скобок пути, прозрачного режима фона. Ниже следует типовой код, который демонстрирует эту процедуру.
// Получим рабочий прямоугольник окна GetClientRect(hwnd, &r);// УСТАНОВКА: устанавливается прозрачный режим фона, // регион является непосредственно текстом // SetBkMode(hdc, TRANSPARENT); // квадратная скобка открывает путь BeginPath(hdc); // отправим какой-либо текст всем TCHARtext[ ] = "Defenestration can be hazardous"; TextOut(hdc,r.left,r.top,text, ARRAYSIZE(text)); // Заключим квадратной скобкой путь EndPath(hdc); // Получим регион из этого пути SelectClipPath(hdc, RGN_AND); // Это создает тот же самый результат, что и SelectClipPath() // SelectClipRgn(hdc, PathToRegion(hdc)); // Заполните регион градациями серого цвета FillRect(hdc, &r, GetStockObject(GRAY_BRUSH)); |
Windows 95/98/Me: Хотя функция TextOutW существует в среде Windows 95/98/Me, она поддерживается Microsoft Layer for Unicode, чтобы обеспечить наиболее непротиворечивое поведение всех операционных систем Windows. Чтобы использовать это, Вы должны добавить некоторые файлы к вашему приложению, как изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.
Пример смотри в статье
Перечисление установленных шрифтов.Смотри также
, Функции, используемые шрифтом и текстом, GetTextAlign, SelectObject, SetBkColor, SetTextAlign, SetTextColor, TabbedTextOut
Размещение и совместимость TextOut |
|
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. |
Замечания по платформе |
Не имеется |