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 自动化 元素需要引发 TextEditTextChanged 和 ConversionTargetChanged 事件。
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 监视更改。