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&)