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
使用英语公制单位 (ETU) 而不是像素作为此方法参数的度量单位。
TXTNS_FITTOCONTENT
通过将文本格式化为传入的宽度,调整控件的大小以适应整个文本。 文本服务对象返回整个文本的高度和最宽行的宽度。

例如,当用户双击控件的句柄之一时,应执行此操作。

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 中的相同方式使用这些值。

pwidthpheight 参数为 in/out 参数。 主机传入文本对象自然范围的暂定宽度和高度。 文本服务对象将这些值与其当前缓存状态进行比较,如果不同,则重新计算行。 然后,它计算并返回 dwMode 指定的自然大小。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 textserv.h
DLL Msftedit.dll

请参阅

概念性

DVTARGETDEVICE

ITextServices

其他资源

引用

TxDraw

TxGetExtent

无窗口富编辑控件