Сравнивая текст и рисунок, можно понять, что расстояние между символами задается не в знакоместах, а в точках, поэтому буквы могут накладываться друг на друга (как буквы 0 и т на рисунке). Также следует учитывать, что позиция первой буквы отсчитывается не от левого верхнего угла области отсечения г, а от рабочей области. Подобное поведение нельзя назвать удобным. Ведь если изменить поля переменной г, то текст не будет перемещаться вместе с областью отсечения. Программист вынужден следить за соответствием координат самостоятельно.

Указанный недостаток устранен в функции i nt DrawText(HDC hDC. LPCTSTR Str. int C. LPRECT r. UINT uFormat). В этой области нет отдельной точки привязки. Текст St г помещается в прямоугольную область, заданную переменной г. Параметр uFormat содержит флаги, управляющие форматированием текста, в том числе и его выравниванием вместо функции SetTextAl i gh (). Например, флаги DT_LEFT, DT_RIGHT, DT_CENTER прижимают текст к левому или правому краю области г или совмещают середину строки с серединой этой области.

Так же, как и в других функциях, цвет текста можно задавать оператором SetTextColorO. А оператор SetBkColorO указывает цвет не всего прямоугольника г, а только фона непосредственно под буквами. Параметр С, как и ранее, задает длину строки, но если присвоить ему значение -1, то длина будет определяться автоматически по терминальному нулевому байту.

Строка текста может содержать управляющие символы. В листинге 18.2 приведен фрагмент кода, выводящий на экран верхние две строки из тех, которые показаны на рис. 18.2.

Частичный вывод текста

Рис. 18.2. Частичный вывод текста Листинг 18.2

RECT DrT - {50.90.157.170}; RECT DrTl - {50.10.157.80}"opengl4_209.html">⇐ Предыдущая| |Следующая ⇒