Если параметры iNumTabs и piTabStop имеют нулевые значения, то позиции табуляции устанавливаются через равные промежутки, равные восьмикратной средней ширине символов. Если шестой параметр равен единице, то седьмой параметр указывает на простое целое число, которое каждый раз прибавляется для определения следующей позиции табуляции. Например, если шестой параметр равен единице, а седьмой параметр является указателем на переменную, содержащую число 30, то позиции табуляции будут установлены через каждые 30 пикселов.

Функция B00L ExtText0ut(HDC hdc. int X. Y, UINT fuOptions. RECT *lprc. LPCSTR Str, UINT C, int *lpDx) позволяет дополнительно задавать и выделять цветом прямоугольную область, ограничивающую текст, а также управлять расстоянием между символами строки. Параметры X, Y, Str, С имеют такое же значение, как и в функции TextOut (). Но если перед вызовом этой функции был установлен режим обновления текущей позиции, то позиция текста на экране будет определяться графическим указателем. Параметр 1 pre содержит указатель на структуру RECT, задающую размеры связанной со строкой прямоугольной области. Если 1 pre = NULL, то область ограничения не используется.

Примитивы для вывода текста Параметр fuOptions содержит один или два флага, соединенных операцией ИЛИ. Флаг ETOCLIPPED задает операцию отсечения текста по области, заданной параметром 1 pre. Если в параметре fuOptions задан флаг ET0_0PAQUE, то область закрасится цветом фона, заданным при помощи функции SetBkColor().

Если параметр 1 pDx не равен NULL, то он определяет массив целых чисел, задающих расстояния между символами строки Str в логических единицах. Элемент массива с индексом п определяет расстояние между п-м и п + 1-м символами строки. Размер массива должен быть равен значению, указанному в параметре С.

Функция ExtTextOut () при нормальном завершении возвращает ненулевое значение TRUE. В противном случае возвращается значение FALSE.

Код, приведенный в листинге 18.1, формирует изображение, показанное на рис. 18.1.


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