ITfRange::SetText 方法 (msctf.h)
ITfRange::SetText方法會取代文字範圍所涵蓋的內容。 如果是空範圍物件,此方法會導致插入範圍的位置。 如果新內容是空字串 (cch = 0) ,則方法會刪除範圍內現有的內容。
語法
HRESULT SetText(
[in] TfEditCookie ec,
[in] DWORD dwFlags,
[in] const WCHAR *pchText,
[in] LONG cch
);
參數
[in] ec
識別從 ITfDocumentMgr::CreateCoNtext 或 ITfEditSession::D oEditSession取得的編輯內容。
[in] dwFlags
指定修正內容的選擇性行為。 如果設定為 TF_ST_CORRECTION的值,則作業會更正現有的內容,而不是建立新的內容,而且會保留原始文字屬性。
[in] pchText
緩衝區的指標,其中包含要取代範圍內容的文字。
[in] cch
包含 pchText中的字元數。
傳回值
這個方法可以傳回其中一個值。
值 | 描述 |
---|---|
|
此方法成功。 |
|
發生未指定的錯誤。 |
|
一或多個參數無效。 |
|
內容擁有者拒絕預設組合。 |
|
ec參數的值是不正確 Cookie,或者呼叫端沒有讀取/寫入鎖定。 |
|
範圍不在呼叫端的作用中組合內。 |
備註
當某個範圍涵蓋多個區域時,請分別在每個區域上呼叫 ITfRange::SetText 。 否則,方法可能會失敗。
根據預設,文字服務會啟動和結束涵蓋範圍的暫存組合,以確保內容擁有者一致地辨識已編輯文字的組合。 如果組合擁有者拒絕預設組合,則方法會傳回TF_E_COMPOSITION_REJECTED。 只有在呼叫端尚未啟動預設組合時,才會建立預設組合。 如果呼叫端有作用中的組合,呼叫就會失敗。
TF_CHAR_EMBEDDED物件預留位置字元可能不會傳遞至這個方法。 應該改用ITfRange::InsertEmbedded。
若要插入文字, ITFInsertAtSelection:InsertTextAtSelection 方法不需要配置選取範圍,並避免範圍符合選取範圍的需求。
需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | msctf.h |
Dll | Msctf.dll |
可轉散發套件 | Windows 2000 專業版上的 TSF 1.0 |
另請參閱
ITFInsertAtSelection:InsertTextAtSelection