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