ITextServices2::TxGetNaturalSize2 メソッド (textserv.h)
コンテンツが適切に収まるようにコントロールのサイズを変更します。 このメソッドは TxGetNaturalSize に似ていますが、テキストの先頭行の上昇も取得します。
構文
HRESULT TxGetNaturalSize2(
DWORD dwAspect,
HDC hdcDraw,
HDC hicTargetDev,
DVTARGETDEVICE *ptd,
DWORD dwMode,
const SIZEL *psizelExtent,
LONG *pwidth,
LONG *pheight,
LONG *pascent
);
パラメーター
dwAspect
型: DWORD
図面の側面。 DVASPECT 列挙の値のいずれかを指定できます。
hdcDraw
種類: HDC
描画が行われるデバイス コンテキスト。
hicTargetDev
種類: HDC
テキストを書式設定するデバイス コンテキスト (WYSIWYG の場合)。
ptd
種類: DVTARGETDEVICE*
ターゲット デバイスの詳細。
dwMode
型: DWORD
要求された継手の種類。 次のいずれかになります。
値 | 説明 |
---|---|
|
このメソッドのパラメーターの測定単位 (両方の方法) として、ピクセルではなく英語のメートル法単位 (EMU) を使用します。 |
|
渡された幅にテキストを書式設定して、テキスト全体に合わせてコントロールのサイズを変更します。 text services オブジェクトは、テキスト全体の高さと最も広い行の幅を返します。
たとえば、ユーザーがコントロールのハンドルの 1 つをダブルクリックすると、これを行う必要があります。 |
|
インデントされたコンテンツに合わせてコントロールのサイズを変更します。 |
|
コントロールのサイズを変更して、インデントされたコンテンツと末尾の空白に収まるようにします。 |
|
コントロールのサイズを変更して、意図しないコンテンツと末尾の空白に収まるようにします。 |
|
プレーンテキスト コントロールの場合は、サイズを計算するときに、最終的な復帰の高さを含めます。 |
|
コントロールのサイズを変更して、整数の行数を表示します (行はクリップされません)。 渡された幅と高さを埋めるのに十分なテキストを書式設定し、最も近い線の境界に丸められた高さを返します。
メモ 渡され、返される幅と高さは、ビューの四角形に対応します。 ホストは、必要に応じてクライアントの四角形に戻る必要があります。 これらの値はテキスト オブジェクトの範囲を表しているため、HIMETRIC 座標 (各 HIMETRIC 単位は 0.01 mm) で入力および出力され、測定にはズーム係数は含まれません。 ズーム係数の詳細については、「 TxGetExtent」を参照してください。
|
psizelExtent
型: const SIZEL*
ズームに使用するエクステントのサイズ (HIMETRIC 単位)。
pwidth
型: LONG*
dwMode によって定義される継手の幅。
pheight
型: LONG*
dwMode によって定義される継手の高さ。
pascent
型: LONG*
1 行のコントロールの場合、 は、テキストの一番上の行にある文字のアセント (ベースラインより上の単位) を受け取ります。
戻り値
型: HRESULT
メソッドが成功した場合、戻り値は S_OK。
テキスト サービスでオブジェクトをアクティブにできなかった場合、戻り値は次のいずれかの HRESULT コードになります。 COM エラー コードの詳細については、「COM でのエラー処理」を参照してください。
リターン コード | 説明 |
---|---|
|
正しいサイズを特定できません。 |
|
1 つ以上の引数が無効です。 |
|
メモリ不足です。 |
解説
最初の 4 つのパラメーターは 、ITextServices::TxDraw の同等のパラメーターに似ていて、同じ情報を提供します。 行を再計算する必要がある場合、 TxGetNaturalSize2 は ITextServices::TxDraw と同じ方法でこれらの値を使用します。
pwidth パラメーターと pheight パラメーターは in/out パラメーターです。 ホストは、テキスト オブジェクトの自然な範囲の仮の幅と高さを渡します。 テキスト サービス オブジェクトは、これらの値を現在のキャッシュ状態と比較し、異なる場合は行を再計算します。 次に、 dwMode で指定された自然なサイズを計算して返します。
例
次の例では、 の psizelExtent パラメーターを 1:1 のズーム係数に初期化する方法を示します。 省略記号は、指定する必要があるコードを示します。
LONG dxpi = GetDeviceCaps(hdc, LOGPIXELSX);
LONG dypi = GetDeviceCaps(hdc, LOGPIXELSY);
LONG dyAscent = 0;
LONG dx = ... ; // Text image width, in pixels
LONG dy = ... ; // Text image height, in pixels
SIZEL sizel; // dx and dy, in HIMETRIC
ITextServices2 *pserv = ... ; // Interface for single-line control
sizel.cx = MulDiv(dx, HIMETRIC_PER_INCH, dxpi);
sizel.cy = MulDiv(dy, HIMETRIC_PER_INCH, dypi);
pserv->TxGetNaturalSize2(DVASPECT_DOCPRINT, hdc, hdcNil, pNil,
TXTNS_FITTOCONTENT, &sizel, &dx, &dy, &dyAscent)))
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | textserv.h |
[DLL] | Msftedit.dll |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示