共用方式為


ITextServices::TxGetNaturalSize 方法 (textserv.h)

允許調整控制件的大小,使其適當地符合其內容。

語法

HRESULT TxGetNaturalSize(
            DWORD          dwAspect,
            HDC            hdcDraw,
            HDC            hicTargetDev,
            DVTARGETDEVICE *ptd,
            DWORD          dwMode,
            const SIZEL    *psizelExtent,
  [in, out] LONG           *pwidth,
  [in, out] LONG           *pheight
);

參數

dwAspect

類型: DWORD

繪圖的層面。 它可以是 DVASPECT 列舉中的任何值。

hdcDraw

類型: HDC

繪製所在的裝置內容。

hicTargetDev

類型: HDC

應針對 WYSIWYG) (格式化文字的裝置內容。

ptd

類型: DVTARGETDEVICE*

目標裝置的詳細資訊。

dwMode

類型: DWORD

要求的配接類型。 它可以是下列其中一項。

意義
TXTNS_EMU
使用英文計量單位 (EMU) ,而不是像素作為此方法參數的測量單位。
TXTNS_FITTOCONTENT
將文字格式化為傳入的寬度,以調整控件的大小以符合整個文字。 文字服務對象會傳回整個文字的高度和最寬線條的寬度。

例如,當使用者按兩下其中一個控件的句柄時,應該這樣做。

TXTNS_FITTOCONTENT2
調整控制元件的大小,使其符合縮排的內容。
TXTNS_FITTOCONTENT3
調整控制元件的大小,使其符合縮排的內容和尾端空格符。
TXTNS_FITTOCONTENTWSP
調整控制元件的大小,使其符合未輸入的內容和尾端空格符。
TXTNS_INCLUDELASTLINE
如果是純文字控件,請在計算大小時包含最終歸位字元的高度。
TXTNS_ROUNDTOLINE
調整控制元件的大小以顯示整數行數, (沒有裁剪任何行) 。 格式化足夠的文字來填入傳入的寬度和高度,然後傳回四捨五入到最接近線條界限的高度。
注意 傳遞和傳回的寬度和高度會對應至檢視矩形。 主機應該視需要調整回用戶端矩形。 由於這些值代表文字物件的範圍,因此它們是 HIMETRIC 座標中的輸入和輸出, (每個 HIMETRIC 單位為 .01 公厘) ,而且測量不包含任何縮放因數。 如需縮放因數的討論,請參閱 TxGetExtent
 

psizelExtent

類型: const SIZEL*

不支援。

[in, out] pwidth

類型: LONG*

dwMode 所定義的調整寬度。

[in, out] pheight

類型: LONG*

dwMode 所定義之配適的高度。

傳回值

類型: HRESULT

如果方法成功,傳回值會 S_OK

如果文字服務無法啟動物件,則傳回值是下列其中一個 HRESULT 代碼。 如需 COM 錯誤碼的詳細資訊,請參閱 COM 中的錯誤處理

傳回碼 Description
E_FAIL
無法判斷正確的大小。
E_INVALIDARG
一或多個自變數無效。
E_OUTOFMEMORY
記憶體不足。

備註

前四個參數類似於 ITextServices::TxDraw 中的對等參數,並提供相同的資訊。 在必須重新計算行的情況下,應該使用與 ITextServices::TxDraw 相同的方式使用這些值。

pwidthpheight 參數是 in/out 參數。 主機會傳入文字物件自然範圍的暫訂寬度和高度。 文字服務對象會比較這些值與其目前快取的狀態,如果不同,則會重新計算行。 然後,它會計算並傳回 由 dwMode 指定的自然大小。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 textserv.h
Dll Msftedit.dll

另請參閱

概念

DVTARGETDEVICE

ITextServices

其他資源

參考

TxDraw

TxGetExtent

無窗口豐富編輯控制件