Поделиться через


Метод ID3DXFont::D rawText

Рисует форматированный текст. Этот метод поддерживает строки ANSI и Юникода.

Синтаксис

INT DrawText(
  [in] LPD3DXSPRITE pSprite,
  [in] LPCTSTR      pString,
  [in] INT          Count,
  [in] LPRECT       pRect,
  [in] DWORD        Format,
  [in] D3DCOLOR     Color
);

Параметры

pSprite [in]

Тип: LPD3DXSPRITE

Указатель на объект ID3DXSprite , содержащий строку. Может иметь значение NULL, в этом случае Direct3D отрисовывает строку с собственным объектом спрайта. Чтобы повысить эффективность, следует указать объект спрайта, если метод DrawText вызывается несколько раз в строке.

pString [in]

Тип: LPCTSTR

Указатель на отрисовываемую строку. Если параметр Count имеет значение -1, строка должна заканчиваться null.

Count [in]

Тип: INT

Указывает количество знаков в строке. Если аргумент Count равен -1, то параметр pString считается указателем на строку, завершающуюся null, и DrawText вычисляет число символов автоматически.

pRect [in]

Тип: LPRECT

Указатель на структуру RECT , содержащую прямоугольник в логических координатах, в которых должен быть отформатирован текст. Координатное значение правой стороны прямоугольника должно быть больше, чем значение левой стороны прямоугольника. Точно так же значение координат нижней части должно быть больше, чем у верхнего.

Формат [in]

Тип: DWORD

Задает метод форматирования текста. Это может быть любое сочетание следующих значений:

Значение Значение
DT_BOTTOM
Оправдывает текст в нижней части прямоугольника. Это значение необходимо объединить с DT_SINGLELINE.
DT_CALCRECT
Определяет ширину и высоту прямоугольника. При наличии нескольких строк текста DrawText использует ширину прямоугольника, на который указывает параметр pRect, и расширяет основание прямоугольника, чтобы привязать последнюю строку текста. Если текст содержит только одну строку, DrawText изменяет правую сторону прямоугольника таким образом, чтобы он граничит с последним символом в строке. В любом случае DrawText возвращает высоту отформатированного текста, но не рисует текст.
DT_CENTER
Центр текста по горизонтали в прямоугольнике.
DT_EXPANDTABS
Расширяет табуляцию. По умолчанию количество символов на шаг табуляции равно восьми.
DT_LEFT
Выравнивает текст по левому краю.
DT_NOCLIP
Рисует без обрезки. Функция DrawText выполняется несколько быстрее при использовании DT_NOCLIP.
DT_RIGHT
Выравнивает текст по правому краю.
DT_RTLREADING
Отображает текст в порядке чтения справа налево для двунаправленного текста при выборе иврита или арабского шрифта. Порядок чтения по умолчанию для всего текста — слева направо.
DT_SINGLELINE
Отображает текст только в одной строке. Возврат каретки и передача строки не прерывают линию.
DT_TOP
Текст с верхним основанием.
DT_VCENTER
Центр текста по вертикали (только в одной строке).
DT_WORDBREAK
Ломает слова. Линии автоматически разбиваются между словами, если слово расширяется за край прямоугольника, заданного параметром pRect. Последовательность возврата каретки или подачи строки также разрывает линию.

 

Цвет [in]

Тип: D3DCOLOR

Цвет текста. Дополнительные сведения см. в разделе D3DCOLOR.

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

Тип: INT

Если функция выполнена успешно, возвращаемым значением будет высота текста в логических единицах. Если указано DT_VCENTER или DT_BOTTOM, возвращаемое значение представляет собой смещение от pRect (сверху вниз) отрисованного текста. Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Параметры этого метода очень похожи на параметры функции GDI DrawText .

Этот метод поддерживает как строки ANSI, так и Юникод.

Этот метод должен вызываться внутри BeginScene ... Блок EndScene . Единственным исключением является то, что приложение вызывает DrawText с DT_CALCRECT, чтобы вычислить размер заданного блока текста.

Если не используется формат DT_NOCLIP, этот метод обрезает текст, чтобы он не отображался за пределами указанного прямоугольника. Предполагается, что все форматирование состоит из нескольких строк, если не указан формат DT_SINGLELINE.

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

Этот метод поддерживает только шрифты, экранирование и ориентация которых равны нулю.

Требования

Требование Значение
Заголовок
D3dx9core.h
Библиотека
D3dx9.lib

См. также раздел

ID3DXFont