ITextServices::TxDraw 方法 (textserv.h)
繪製文字服務物件。
語法
HRESULT TxDraw(
[in] DWORD dwDrawAspect,
LONG lindex,
[in] void *pvAspect,
[in] DVTARGETDEVICE *ptd,
[in] HDC hdcDraw,
[in] HDC hicTargetDev,
[in] LPCRECTL lprcBounds,
[in] LPCRECTL lprcWBounds,
[in] LPRECT lprcUpdate,
BOOL(* )(DWORD) pfnContinue,
DWORD dwContinue,
LONG lViewId
);
參數
[in] dwDrawAspect
類型: DWORD
指定要繪製的外觀,亦即,如何表示該物件。 繪製層面可以是下列其中一個值。
lindex
類型: LONG
不支援。
[in] pvAspect
類型: void*
繪圖優化的資訊。
[in] ptd
類型: DVTARGETDEVICE*
目標裝置。
[in] hdcDraw
類型: HDC
轉譯裝置內容。
[in] hicTargetDev
類型: HDC
目標資訊內容。
[in] lprcBounds
類型: LPCRECTL
周框 (用戶端) 矩形。
[in] lprcWBounds
類型: LPCRECTL
中繼檔的裁剪矩形。
[in] lprcUpdate
類型: LPRECT
lprcBounds內的更新區域。
pfnContinue
類型: BOOL 回呼*
不支援。
dwContinue
類型: DWORD
要傳遞至 continue 函式的參數。
lViewId
類型: LONG
指定要繪製的檢視。
值 | 意義 |
---|---|
|
繪製就地使用中檢視。 |
|
繪製非就地使用中檢視的檢視;例如,預覽列印。 |
傳回值
類型: HRESULT
傳回值通常是 S_OK。
備註
這個方法會轉譯文字服務物件。 它會接受與 OLE 中對應的 IViewObject::D raw 方法相同的參數,並具有額外的 lprcUpdate 和 lViewId 參數。 當主機就地作用中或非使用中時,可以使用它。
lprcBounds參數會提供要轉譯的矩形,也稱為用戶端矩形。 這個矩形代表要繪製之文字服務物件之整個影像的位置和範圍。 它會以 hdcDraw的邏輯座標系統表示。 如果 lprcBounds 是 Null ,則控制項必須是使用中。 在此情況下,文字服務物件應該呈現就地使用中檢視 (,也就是在主機上呼叫 TxGetClientRect 來取得的用戶端矩形) 。
如果 lprcUpdate 參數不是 Null,它會在 hdcDraw的邏輯座標系統中,為該用戶端矩形提供更新的矩形。 如果 lprcUpdate 是 Null,則應該繪製整個用戶端矩形。
文字服務物件應該以適當的縮放因數呈現,可從用戶端矩形取得,以及 TxGetExtent所提供的原生大小。 如需縮放因數的討論,請參閱 TxGetExtent。
OLE 主機和 ITextServices::TxDraw (ITextServices::OnTxSetCursor和 ITextServices::TxQueryHitPoint) 的一般批註:
OLE 主機可以隨時使用任何轉譯裝置內容或用戶端矩形呼叫 ITextServices::TxDraw 方法。 非使用中的 OLE 物件只會保留範圍。 若要取得要呈現的矩形,主機會呼叫 IViewObject::D raw 方法。 這個矩形僅適用于該方法的範圍。 因此,相同的控制項可以在不同的矩形和不同的裝置內容中連續轉譯,例如,因為它同時顯示在螢幕上的不同檢視中。
通常,不應該快取傳遞至 ITextServices::TxDraw 的用戶端矩形和裝置內容,因為這會強制文字服務物件重新計算每個繪製的行,這會妨礙效能。 相反地,文字服務物件可以快取針對特定用戶端矩形和裝置內容所計算的資訊 (,例如分行符號) 。 不過,在下一次呼叫 ITextServices::TxDraw時,應該先檢查快取資訊的有效性,然後再使用,並視需要重新產生更新的資訊。
此外,當控制項就地作用中時,請特別小心。 此問題更為複雜,因為仍然可以呼叫 ITextServices::TxDraw 來轉譯其他檢視,而不是就地使用中的檢視。 換句話說,傳遞至 ITextServices::TxDraw 的用戶端矩形可能與傳遞至 ITextServices::OnTxInPlaceActivate 且透過主機上 的 TxGetClientRect 取得的作用中 (矩形不同) 。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | textserv.h |
Dll | Msftedit.dll |
另請參閱
概念
其他資源
參考