TextEdit 控件模式
介绍实现 ITextEditProvider的准则和约定,包括有关属性和方法的信息。 TextEdit 控件模式用于以编程方式访问修改文本的控件,例如执行自动更正或启用输入合成的控件。
注意
本主题中的实现说明指的是来自文本服务框架(TSF)的 API。 有关 TSF 和 API 参考的详细信息,请参阅 文本服务框架。
ITextEditProvider 的必需成员
实现 ITextEditProvider 接口需要这些属性和方法。
必需成员 | 成员类型 | 笔记 |
---|---|---|
GetActiveComposition | 方法 | 返回当前转换的范围(如果没有转换)。 返回活动组合(在 TSF 中,这是由 GUID_PROP_COMPOSING标记的范围)。 例如,使用Microsoft日语输入法编辑器(IME),这将是完整的带下划线的文本。 |
GetConversionTarget | 方法 | 返回当前转换目标范围(如果没有转换)。 在 TSF 中,这是从 TF_DISPLAYATTRIBUTE 结构标记为 TF_ATTR_TARGET_NOTCONVERTED 或 TF_ATTR_TARGET_CONVERTED 的字符范围。 |
TextEditTextChanged 和 ConversionTargetChanged 事件需要由支持 TextEdit 模式的 MICROSOFT UI 自动化元素引发。
TextEditTextChanged
- 使用 UiaRaiseTextEditTextChangedEvent 函数引发 TextEditTextChanged 事件。
- 下表列出了应引发事件和 UiaRaiseTextEditTextChangedEvent 参数时的情况。
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 监视更改。