TextEdit 控制項模式
介紹實作 ITextEditProvider的指導方針和慣例,包括屬性和方法的相關資訊。 TextEdit控制項模式用於以程式設計方式存取修改文字的控制項,例如執行自動校正或啟用輸入組合的控制項。
注意
本主題中的實作注意事項是指來自 Text Services Framework (TSF) 的 API。 如需 TSF 和 API 參考的詳細資訊,請參閱 文字服務架構。
ITextEditProvider的必要成員
實作 ITextEditProvider 介面需要這些屬性和方法。
必要成員 | 成員類型 | 備註 |
---|---|---|
GetActiveComposition | 方法 | 如果沒有轉換) ,則傳回目前轉換的範圍 (無。 傳回 TSF 中的使用中組合 (,這是 以GUID_PROP_COMPOSING) 標示的範圍。 例如,使用 Microsoft 日文輸入法編輯器 (輸入法) ,這會是完整的底線文字。 |
GetConversionTarget | 方法 | 如果沒有轉換) ,則傳回目前轉換目標範圍 (無。 在 TSF 中,這是從TF_DISPLAYATTRIBUTE結構標示為TF_ATTR_TARGET_NOTCONVERTED或TF_ATTR_TARGET_CONVERTED的字元範圍。 |
支援TextEdit模式的 Microsoft 消費者介面自動化 元素必須引發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監視變更。