TextEdit 控件模式

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

注意

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

ITextEditProvider 的必需成员

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

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

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

TextEditTextChanged

TextEditChangeType 事件有效负载 笔记
自动更正 新更正的字符串 当控件自动更正时引发。 或者,每当通过 TSF 进行替换并且该范围具有 GUID_PROP_TKB_ALTERNATESTKB_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 自动化树概述