ITfContextOwner::GetACPFromPoint 方法 (msctf.h)

ITfContextOwner::GetACPFromPoint 方法将屏幕坐标中的点转换为应用程序字符位置。

语法

HRESULT GetACPFromPoint(
  [in]  const POINT *ptScreen,
  [in]  DWORD       dwFlags,
  [out] LONG        *pacp
);

参数

[in] ptScreen

指向 POINT 结构的指针,其中包含点的屏幕坐标。

[in] dwFlags

指定要基于相对于字符边界框的点的屏幕坐标返回的字符位置。 默认情况下,返回的字符位置是包含点的屏幕坐标的字符边界框。 如果该点位于字符的边界框之外,则 该方法返回 NULL 或TF_E_INVALIDPOINT。

如果为此参数指定了GXFPF_ROUND_NEAREST标志,并且点的屏幕坐标包含在字符边界框中,则返回的字符位置是最接近点的屏幕坐标的边界边缘。

如果为此参数指定了GXFPF_NEAREST标志,并且点的屏幕坐标不包含在字符边界框中,则返回最近的字符位置。

位标志可以组合使用。

[out] pacp

接收对应于点的屏幕坐标的字符位置

返回值

此方法可以返回其中一个值。

说明
S_OK
方法成功。
TS_E_INVALIDPOINT
ptScreen 参数不在任何字符的边界框中。
TS_E_NOLAYOUT
应用程序尚未计算文本布局。

注解

点 1 位于字符边界框中,点 2 位于字符边界框之外。 使用图示根据 dwFlags 参数中使用的标志确定返回的字符位置。

点 1

  • Default-- pacp = 0 --点的屏幕坐标位于字符位置 0 的字符边界框中。
  • GXFPF_ROUND_NEAREST- pacp = 1 --点的屏幕坐标最接近范围位置 1,这是字符位置 1 的起始范围位置。
  • GXFPF_NEAREST -- pacp = 0 --发生默认行为是因为点位于字符位置 0 的字符边界框中。
第 2 点
  • Default-- hr = TF_E_INVALIDPOINT --点的屏幕坐标位于字符边界框之外。
  • GXFPF_ROUND_NEAREST-- 小时 = TF_E_INVALIDPOINT --发生默认行为是因为点的屏幕坐标在字符边界框之外。
  • GXFPF_NEAREST - pacp = 1 --最接近点屏幕坐标的字符位置为字符位置 1。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 msctf.h
DLL Msimtf.dll
可再发行组件 Windows 2000 专业版上的 TSF 1.0

另请参阅

ITextStoreACP::GetACPFromPoint

ITfContextOwner

ITfContextView::GetRangeFromPoint

TsViewCookie