virtual int DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );
int DrawText( const CString& str, LPRECT lpRect, UINT nFormat );
Возвращаемое значение
Высота текста, если функция успешна.
Параметры
lpszString
Указатель на строку, которая будет выведена. Если nCount -1, строка должна быть с нулевым символом в конце.
nCount
Определяет количество символов в строке. Если nCount -1, то lpszString принят, чтобы быть длинным указателем на строку с нулевым символом в конце, и DrawText вычисляет символьный счет автоматически.
lpRect
Указатель на структуру RECT или объект CRect, который содержит прямоугольник (в логических координатах) в котором текст должен форматироваться.
str
Объект CString, который содержит определенные символы, которые будут выведены.
nFormat
Определяет метод форматирования текста. Это может быть любая комбинация следующих значений (объединенных поразрядным OR оператором):
- DT_BOTTOM - Определяет выровненный по нижней части текст. Это значение должно быть объединено с DT_SINGLELINE.
- DT_CALCRECT - Определяет ширину и высоту прямоугольника. Если имеются многократные строки текста, DrawText использует ширину прямоугольника, указанного на lpRect и расширит прямоугольника к последней строки текста. Если имеется только одна строка текста, DrawText изменит правую сторону прямоугольника так, чтобы это ограничило последний символ в строке. В любом случае, DrawText возвращает высоту форматируемого текста, но не выводит текст.
- DT_CENTER - Выравнивает по центру текст горизонтально.
- DT_END_ELLIPSIS или DT_PATH_ELLIPSIS - Заменяет часть данной строки с эллипсами, в случае необходимости, так, чтобы результат находился в определенном прямоугольнике. Данная строка не изменяется, если флажок DT_MODIFYSTRING не определен. Вы можете определять DT_END_ELLIPSIS, чтобы заменить символы в конце строки, или DT_PATH_ELLIPSIS, чтобы заменить символы в середине строки. Если строка содержит наклонную черту влево (\), символы, DT_PATH_ELLIPSIS сохраняют в максимально возможной степени текста после последней наклонной черты влево.
- DT_EXPANDTABS - Разворачивает символы табуляции. Заданное по умолчанию число символов позиций табуляции - восемь.
- DT_EXTERNALLEADING - Включает внешнюю подачу шрифта в высоте строки. Обычно, внешняя подача не включена в высоту строки текста.
- DT_LEFT - Выравнивает влево текст.
- DT_MODIFYSTRING - Изменяет данную строку, чтобы согласовать к отображаемому тексту. Этот флажок не имеет никакого эффекта, если DT_END_ELLIPSIS или флажок DT_PATH_ELLIPSIS не определен. Обратите внимание, что некоторые комбинации флажков uFormat могут заставлять переданную строку изменяться. Использование DT_MODIFYSTRING или с DT_END_ELLIPSIS или DT_PATH_ELLIPSIS может заставлять строку изменяться, вызывая исключение в отмене CString.
- DT_NOCLIP - Выводит без отсечения. DrawText несколько быстрее, когда DT_NOCLIP используется.
- DT_NOPREFIX - Выключает обработку префиксных символов. Обычно, DrawText интерпретирует символ амперсанда (и) мнемонической схемы - префиксный символ как директива, чтобы подчеркнуть символ, который следует, и (& &) мнемонически схема - префиксные символы с двумя символами амперсанда как директива, чтобы печатать одиночный символ амперсанда. Определяя DT_NOPREFIX, эта обработка выключена.
- DT_RIGHT - Выравнивает вправо текст.
- DT_SINGLELINE - Определяет одиночную строку только. Возвраты каретки и переводы строки не разрывают строку.
- DT_TABSTOP - Устанавливает табуляторы. Старший байт nFormat - число символов для каждой позиции табуляции. Заданное по умолчанию число символов в позиции табуляции - восемь.
- DT_TOP - Определяет выровненный по верху текст (одиночная строка только).
- DT_VCENTER - Определяет вертикально центрированный текст (одиночная строка только).
- DT_WORDBREAK - Определяет слово - breaking. Строки были бы автоматически разбиты между словами, если слово простиралось бы дальше края прямоугольника, определенного lpRect. Последовательность переводов строки возвратов каретки также разорвет строку.
Замечания
Вызовите эту функцию, чтобы форматировать текст в данном прямоугольнике. Это форматирует текст, разворачивая позиции табуляции в соответствующие пробелы, выравнивая текст налево, право, или центр данного прямоугольника, и разрывая текст в строки, которые приспосабливаются внутри данного прямоугольника. Тип форматирования определен nFormat.
Эта функция использует контекст устройства, выбранный шрифт, текстовый цвет, и фоновый цвет, чтобы вывести текст. Если формат DT_NOCLIP не используется, DrawText отсекает текст так, чтобы текст не появился снаружи данного прямоугольника. Все форматирование принято, чтобы иметь многократные строки, если формат DT_SINGLELINE не дан.
Если выбранный шрифт слишком большой для определенного прямоугольника, DrawText функция не пытается заменять меньшим шрифтом.
Если флажок DT_CALCRECT определен, прямоугольник, определенный lpRect будет модифицироваться, чтобы отразить ширину и высоту, необходимую, чтобы вывести текст.
Если TA_UPDATECP флажок выравнивания текста был установлен (см. CDC::SetTextAlign), DrawText отобразит текст, начинающийся в текущей позиции, скорее чем налево от данного прямоугольника. DrawText не будет переносить по словам текст, когда флажок TA_UPDATECP был установлен (то есть флажок DT_WORDBREAK не будет иметь никакого эффекта).