Метод 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
Тип запрошенной установки. Это может быть один из следующих вариантов.
Значение | Значение |
---|---|
|
Используйте английские единицы метрик (EMU) вместо пикселей в качестве единиц измерения для параметров этого метода. |
|
Измените размер элемента управления в соответствии со всем текстом, отформатируя текст в соответствии с передаваемой шириной. Объект text services возвращает высоту всего текста и ширину самой широкой строки.
Например, это следует делать, когда пользователь дважды щелкает один из дескрипторов элемента управления. |
|
Измените размер элемента управления так, чтобы он соответствовал содержимому с отступом. |
|
Измените размер элемента управления так, чтобы он соответствовал содержимому с отступом и конечным пробелам. |
|
Измените размер элемента управления таким образом, чтобы он соответствовал неотправленным содержимым и конечным пробелам. |
|
Для элемента управления в виде обычного текста включите высоту конечного возврата каретки при вычислении размера. |
|
Измените размер элемента управления, чтобы отобразить целое число строк (линия не обрезается). Отформатируйте достаточно текста, чтобы заполнить ширину и высоту, которые передаются, а затем вернуть высоту, округленную до ближайшей границы линии.
Примечание Переданная и возвращаемая ширина и высота соответствуют прямоугольнику представления. При необходимости узел должен вернуться к клиентскому прямоугольнику. Так как эти значения представляют экстент текстового объекта, они являются входными и выходными данными в координатах HIMETRIC (каждая единица HIMETRIC составляет 0,01 миллиметра), а измерение не включает коэффициент масштабирования. Описание коэффициента масштабирования см. в разделе TxGetExtent.
|
psizelExtent
Тип: const SIZEL*
Не поддерживается.
[in, out] pwidth
Тип: LONG*
Ширина установки, определяемая dwMode.
[in, out] pheight
Тип: LONG*
Высота установки, определяемая dwMode.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет S_OK.
Если текстовым службам не удалось активировать объект, возвращаемым значением будет один из следующих кодов HRESULT . Дополнительные сведения о кодах ошибок COM см. в разделе Обработка ошибок в COM.
Код возврата | Описание |
---|---|
|
Не удается определить правильный размер. |
|
Один или несколько аргументов недопустимы. |
|
Недостаточно памяти. |
Комментарии
Первые четыре параметра похожи на эквивалентные параметры в ITextServices::TxDraw и предоставляют те же сведения. В случае, когда строки должны быть пересчитаны, они должны использоваться теми же способами, что и в ITextServices::TxDraw.
Параметры pwidth и pheight являются параметрами in/out. Узел передает предварительную ширину и высоту естественного экстента текстового объекта. Объект текстовых служб сравнивает эти значения с текущим кэшированным состоянием и, если они отличаются, пересчитывает строки. Затем он вычисляет и возвращает естественный размер, как указано в dwMode.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | textserv.h |
DLL | Msftedit.dll |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы