ITextStoreAnchor::GetAnchorFromPoint 方法 (textstor.h)

ITextStoreAnchor::GetAnchorFromPoint 方法将屏幕坐标中的点转换为定位在相应位置的定位点。

语法

HRESULT GetAnchorFromPoint(
  [in]  TsViewCookie vcView,
  [in]  const POINT  *ptScreen,
  [in]  DWORD        dwFlags,
  [out] IAnchor      **ppaSite
);

参数

[in] vcView

指定上下文视图。

[in] ptScreen

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

[in] dwFlags

根据相对于字符边界框的点的屏幕坐标指定要返回的定位点位置。 默认情况下,返回的定位点位置是包含点的屏幕坐标的字符边界框。 如果该点位于字符边界框之外,则 该方法返回 NULLTF_E_INVALIDPOINT。 此参数的其他位标志如下所示。

位标志可以组合使用。

含义
GXFPF_ROUND_NEAREST
如果点的屏幕坐标包含在字符边界框中,则会在最接近点的屏幕坐标的边界边缘返回定位点。
GXFPF_NEAREST
如果点的屏幕坐标不包含在字符边界框中,则返回位于最近字符位置的定位点。

[out] ppaSite

指向与屏幕坐标 ptScreen 相对应的位置的定位点对象的指针。

返回值

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

说明
S_OK
方法成功。
E_FAIL
方法失败。
E_INVALIDARG
一个或多个输入参数无效。
E_OUTOFMEMORY
在指定位置实例化定位点的尝试失败。
TS_E_INVALIDPOINT
ptScreen 参数不在任何字符的边界框中。
TS_E_NOLAYOUT
应用程序尚未计算文本布局。

注解

点 1 位于字符边界框中,点 2 位于字符边界框之外。 默认情况下,点 1 屏幕坐标会导致定位点 ppaSite (字符位置) 偏移量为 0,或者如果 dwFlags 参数设置为 GXFPF_NEAREST 因为点 1 屏幕坐标位于字符位置 0 的字符边界框中。 如果 dwFlags 参数设置为点 1 的 GXFPF_ROUND_NEAREST,则定位点偏移量为 1,因为点 1 屏幕坐标最接近范围位置 1。 范围位置 1 是字符位置 1 的起始范围位置。

对于点 2 屏幕坐标,方法默认返回 TF_E_INVALIDPOINT ,或者如果 dwFlags 参数设置为 GXFPF_NEAREST ,因为点 2 屏幕坐标在字符边界框之外。 如果 dwFlags 参数设置为 GXFPF_ROUND_NEAREST,则点 2 屏幕坐标会导致定位点偏移量为 1,因为与点 2 屏幕坐标最近的字符位置是字符位置 1。

第 1 点

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

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 textstor.h
DLL Msctf.dll
可再发行组件 Windows 2000 专业版上的 TSF 1.0

另请参阅

GXFPF_* 常量

ITextStoreAnchor

ITfContextView::GetRangeFromPoint

管理器返回值

TsViewCookie