TextEdit 控件模式

介绍实现 ITextEditProvider 的准则和约定,包括有关属性和方法的信息。 TextEdit 控件模式用于以编程方式访问修改文本的控件,例如执行自动更正或启用输入组合的控件。

注意

本主题中的实现说明是指来自文本服务框架 (TSF) 的 API。 有关 TSF 和 API 参考的详细信息,请参阅 文本服务框架

ITextEditProvider 的必需成员

实现 ITextEditProvider 接口需要这些属性和方法。

必需的成员 成员类型 说明
GetActiveComposition 方法 如果没有转换) ,则返回当前转换 (无范围。 返回 TSF 中的活动组合 (, 这是GUID_PROP_COMPOSING) 标记的范围。 例如,使用 Microsoft 日语输入法编辑器 (IME) ,这将是带下划线的完整文本。
GetConversionTarget 方法 如果没有转换) ,则返回当前转换目标范围 (none。 在 TSF 中,这是从TF_DISPLAYATTRIBUTE结构标记为TF_ATTR_TARGET_NOTCONVERTED或TF_ATTR_TARGET_CONVERTED的字符范围。

支持 TextEdit 模式的 Microsoft UI 自动化 元素需要引发 TextEditTextChangedConversionTargetChanged 事件。

TextEditTextChanged

TextEditChangeType 事件负载 说明
自动更正 新更正的字符串 控件进行自动更正时引发。 或者,只要通过 TSF 进行替换,并且范围 GUID_PROP_TKB_ALTERNATES 值为 TKB_ALTERNATES_AUTOCORRECTION_APPLIED
组合 更新后的字符串 有效负载必须仅包含更改 (不发送整个合成字符串) 的字符。 每当进行合成替换时引发。 在 TSF 中,组合替换被定义为设置了 GUID_PROP_COMPOSING 标志的替换。 实现 TSF 的编辑控件可以通过 OnEndEdit 通知监视这些更改。
CompositionFinalized 最终完成的合成字符串 (请参阅注释) 在 TSF 中,正在完成的转换字符串由从合成中删除 GUID_PROP_COMPOSING 标志定义。 实现 TSF 的编辑控件应确定 EndComposition 中的最终字符串,并在调用 OnEndEdit 时引发 事件。
如果取消或删除组合,则最终的合成字符串可能为空。

ConversionTargetChanged

  • 当转换目标从一个目标更改为另一个目标时,将发生 ConversionTargetChanged
  • 使用 UiaRaiseAutomationEvent 函数引发 ConversionTargetChanged 事件, (UIA_TextEdit_ConversionTargetChangedEventId事件标识符) 传递。
  • 当目标内容发生更改时,不应引发 ConversionTargetChanged。 如果目标更改与组合更改同时发生,则必须在已引发任何组合事件之后引发目标更改事件。
  • 在 TSF 中,转换目标由 从 TF_DISPLAYATTRIBUTE结构设置 TF_ATTR_TARGET_CONVERTED值定义。 可以使用 OnEndEdit 监视更改。

概念性

控件类型及其支持的控件模式

UI 自动化控件模式概述

UI 自动化树概述