Текст в нижней части рисунка выведен при помощи следующего вызова функции:

DrawText(hdc."Пример \п вывод&а текста на экран".-1. &DrT.DT_WORDBREAK|DT_CENTER): Этот пример демонстрирует возможность применения флага DT_W0RDBREAK для автоматического перевода строки, если ее длина превышает ширину области отсечения. Как видим, текст переводится на следующую строку только на границах слов.

При выводе любого текста Windows отсекает ту его часть, которая попадает за пределы прямоугольника вывода. Можно избежать этой ситуации, включив флаг DT_N0CLIP, который также ускоряет выполнение функции. Когда Windows осуществляет вывод на экран текста, состоящего из нескольких строк, то межстрочный интервал обычно выбирается равным высоте символа без учета величины пространства, заданного в шрифте как межстрочный интервал. Если необходимо, чтобы величина этого пространства была включена в межстрочный интервал, то можно использовать флаг DT_EXTERNALLEADING.

Если текст содержит символы табуляции (\t или 0x09), необходимо включить флаг DT_EXPANDTABS. По умолчанию позиции табуляции установлены через каждые восемь символьных позиций. Можно задать разные позиции табуляции, используя флаг DT_TABST0P. В этом случае старший байт параметра uFormat содержит число символьных позиций для каждой новой позиции табуляции. Однако флагом DT_TABST0P надо пользоваться осторожно, поскольку старший байт параметра uFormat используется также для некоторых других флагов.

Если параметр uFormat имеет нулевое значение, то текст интерпретируется как ряд строк, разделенных символами возврата каретки (\г или OxOD) или символом конца строки (\п или ОхОА). Вывод текста производится, начиная с верхнего левого угла прямоугольника. Символы Возврат каретки или Конец строки прерывают вывод текущей строки и начинают новую строку. Вывод новой строки начинается под предыдущей строкой от левого края прямоугольника с интервалом, равным высоте символа в строке без учета величины пространства, заданного в шрифте в качестве межстрочного интервала. Любой текст, в том числе и части букв, которые при отображении попадают правее или ниже границ прямоугольника, отсекаются.


⇐ Предыдущая| |Следующая ⇒