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


Метод ITextServices::TxGetNaturalSize (textserv.h)

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

Синтаксис

HRESULT TxGetNaturalSize(
            DWORD          dwAspect,
            HDC            hdcDraw,
            HDC            hicTargetDev,
            DVTARGETDEVICE *ptd,
            DWORD          dwMode,
            const SIZEL    *psizelExtent,
  [in, out] LONG           *pwidth,
  [in, out] LONG           *pheight
);

Параметры

dwAspect

Тип: DWORD

Аспект для рисунка. Это может быть любое из значений перечисления DVASPECT .

hdcDraw

Тип: HDC

Контекст устройства, в котором выполняется рисование.

hicTargetDev

Тип: HDC

Контекст устройства, для которого должен быть отформатирован текст (то есть для WYSIWYG).

ptd

Тип: DVTARGETDEVICE*

Дополнительные сведения о целевом устройстве.

dwMode

Тип: DWORD

Тип запрошенной установки. Это может быть один из следующих вариантов.

Значение Значение
TXTNS_EMU
Используйте английские единицы метрик (EMU) вместо пикселей в качестве единиц измерения для параметров этого метода.
TXTNS_FITTOCONTENT
Измените размер элемента управления в соответствии со всем текстом, отформатируя текст в соответствии с передаваемой шириной. Объект text services возвращает высоту всего текста и ширину самой широкой строки.

Например, это следует делать, когда пользователь дважды щелкает один из дескрипторов элемента управления.

TXTNS_FITTOCONTENT2
Измените размер элемента управления так, чтобы он соответствовал содержимому с отступом.
TXTNS_FITTOCONTENT3
Измените размер элемента управления так, чтобы он соответствовал содержимому с отступом и конечным пробелам.
TXTNS_FITTOCONTENTWSP
Измените размер элемента управления таким образом, чтобы он соответствовал неотправленным содержимым и конечным пробелам.
TXTNS_INCLUDELASTLINE
Для элемента управления в виде обычного текста включите высоту конечного возврата каретки при вычислении размера.
TXTNS_ROUNDTOLINE
Измените размер элемента управления, чтобы отобразить целое число строк (линия не обрезается). Отформатируйте достаточно текста, чтобы заполнить ширину и высоту, которые передаются, а затем вернуть высоту, округленную до ближайшей границы линии.
Примечание Переданная и возвращаемая ширина и высота соответствуют прямоугольнику представления. При необходимости узел должен вернуться к клиентскому прямоугольнику. Так как эти значения представляют экстент текстового объекта, они являются входными и выходными данными в координатах HIMETRIC (каждая единица HIMETRIC составляет 0,01 миллиметра), а измерение не включает коэффициент масштабирования. Описание коэффициента масштабирования см. в разделе TxGetExtent.
 

psizelExtent

Тип: const SIZEL*

Не поддерживается.

[in, out] pwidth

Тип: LONG*

Ширина установки, определяемая dwMode.

[in, out] pheight

Тип: LONG*

Высота установки, определяемая dwMode.

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

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет S_OK.

Если текстовым службам не удалось активировать объект, возвращаемым значением будет один из следующих кодов HRESULT . Дополнительные сведения о кодах ошибок COM см. в разделе Обработка ошибок в COM.

Код возврата Описание
E_FAIL
Не удается определить правильный размер.
E_INVALIDARG
Один или несколько аргументов недопустимы.
E_OUTOFMEMORY
Недостаточно памяти.

Комментарии

Первые четыре параметра похожи на эквивалентные параметры в ITextServices::TxDraw и предоставляют те же сведения. В случае, когда строки должны быть пересчитаны, они должны использоваться теми же способами, что и в ITextServices::TxDraw.

Параметры pwidth и pheight являются параметрами in/out. Узел передает предварительную ширину и высоту естественного экстента текстового объекта. Объект текстовых служб сравнивает эти значения с текущим кэшированным состоянием и, если они отличаются, пересчитывает строки. Затем он вычисляет и возвращает естественный размер, как указано в dwMode.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header textserv.h
DLL Msftedit.dll

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

Основные понятия

DVTARGETDEVICE

ITextServices

Другие ресурсы

Справочные материалы

TxDraw

TxGetExtent

Элементы управления расширенным редактированием без окон