Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" ( _
ByVal hdc As Long, _
ByVal lpchText As String, _
ByVal cchText As Long, _
lpRect As RECT, _
ByVal wFormat As Long, _
ByVal lpDrawTextParams As Any) As Long
DrawTextEx выводит текст в заданном прямоугольнике, при этом используются свойства контекста устройства: шрифт, цвет шрифта и фона
В успешном случае возвращается высота выводимого текста в логических единицах. В случае ошибки возвращается 0 (Используйте GetLastError для получения кода ошибки.
| DT_BOTTOM = &H8 | Текст выравнивается по нижнему краю прямоугольника. Должен быть задан флаг DT_SINGLELINE |
| DT_CALCRECT = &H400 | Вычисляется ограничивающий прямоугольник. При многострочном тексте нижний край прямоугольника сдвигается, чтобы вместить весь текст. При однострочном тексте сдвигается правый край, но текст не выводится |
| DT_CENTER = &H1 | Выравнивание по центру |
| DT_EDITCONTROL = &H2000 | Схоже с поведением текстовых полей |
| DT_END_ELLIPSIS = &H8000 | Текст, не умещаемый в прямоугольник, частично замещается многоточием |
| DT_EXPANDTABS = &H40 | Расширение символов табуляции |
| DT_EXTERNALLEADING = &H200 | Используется величина внешнего промежутка при вычислении строки текста |
| DT_HIDEPREFIX | Отключение режима подчеркивания символа после амперсанда (&), а сам амперсанд выводится |
| DT_INTERNAL = &H1000 | Используется системный шрифт для вычисления текстовых характеристик |
| DT_LEFT = &H0 | Выравнивание по левом краю |
| DT_NOCLIP = &H100 | Текст выводится без отсечения по заданному прямоугольнику |
| DT_NOPREFIX = &H800 | Отключение режима подчеркивания символа после амперсанда (&), а сам амперсанд не выводится |
| DT_PATH_ELLIPSIS = &H4000 | Часть текста в середине текста заменяется многоточием |
| DT_PREFIXONLY | Выводятся только символы подчеркивания после амперсанда. Например, строка "A&bcd" будет выглядеть как " _ " |
| DT_RIGHT = &H2 | Выравнивание по правому краю |
| DT_SINGLELINE = &H20 | Однострочный текст |
| DT_TOP = &H0 | Выравнивание по верхнему краю прямоугольника |
| DT_VCENTER = &H4 | Выравнивание по центру прямоугольника по вертикали. Должен быть задан флаг DT_SINGLELINE |
| DT_WORDBREAK = &H10 | Перенос слов |
' Выводим текст в правой части формы
Dim lRet As Long
Dim MyText As String
Dim MyRect As RECT
Form1.Font.Size = 12
Form1.ScaleMode = vbPixels
MyRect.Left = 0
MyRect.Right = Form1.ScaleWidth
MyRect.Top = 0
MyRect.Bottom = 90
MyText = "Русский_Проект"
lRet = DrawText(Form1.hdc, MyText, -1, _
MyRect, DT_RIGHT Or DT_WORDBREAK, ByVal 0&)