Функция DrawText

Declare Function DrawText Lib "user32" Alias "DrawTextA" ( _
    ByVal hdc As Long, _
    ByVal lpStr As String, _
    ByVal nCount As Long, _
    lpRect As RECT, _
    ByVal wFormat As Long) As Long

DrawText выводит текст в заданном прямоугольнике, при этом используются свойства контекста устройства: шрифт, цвет шрифта и фона

Возвращаемое значение

В успешном случае возвращается высота выводимого текста в логических единицах. В случае ошибки возвращается 0 (Используйте GetLastError для получения кода ошибки.

Параметры

hdc
Описатель контекста устройства
lpStr
Выводимая строка. Если параметр nCount равен -1, то строка должна завершаться нулевым символом
nCount
Длина строки. Если выводится вся строка, то используйте -1
lpRect
Структура RECT - ограничивающий прямоугольник в логических координатах для текста
wFormat
Комбинация флагов, определяющих вид выводимого текста:
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_HIDEPREFIXWindows 2000 и выше: Отключение режима подчеркивания символа после амперсанда (&), а сам амперсанд выводится
DT_INTERNAL = &H1000Используется системный шрифт для вычисления текстовых характеристик
DT_LEFT = &H0Выравнивание по левом краю
DT_NOCLIP = &H100Текст выводится без отсечения по заданному прямоугольнику
DT_NOPREFIX = &H800Отключение режима подчеркивания символа после амперсанда (&), а сам амперсанд не выводится
DT_PATH_ELLIPSIS = &H4000Часть текста в середине текста заменяется многоточием
DT_PREFIXONLYWindows 2000 и выше: Выводятся только символы подчеркивания после амперсанда. Например, строка "A&bcd" будет выглядеть как " _ "
DT_RIGHT = &H2Выравнивание по правому краю
DT_SINGLELINE = &H20Однострочный текст
DT_TOP = &H0Выравнивание по верхнему краю прямоугольника
DT_VCENTER = &H4Выравнивание по центру прямоугольника по вертикали. Должен быть задан флаг DT_SINGLELINE
DT_WORDBREAK = &H10Перенос слов

Пример

' Выводим текст в правой части формы
Dim retval 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 = "Русский_Проект"
retval = DrawText(Form1.hdc, MyText, -1, _
MyRect, DT_RIGHT Or DT_WORDBREAK)

Смотри также

DrawTextEx, TextOut

Категория

Шрифты и тексты