ScriptGetLogicalWidths 関数 (usp10.h)

特定のフォントのグリフ アドバンス幅 を論理幅に変換します。

構文

HRESULT ScriptGetLogicalWidths(
  [in]  const SCRIPT_ANALYSIS *psa,
  [in]  int                   cChars,
  [in]  int                   cGlyphs,
  [in]  const int             *piGlyphWidth,
  [in]  const WORD            *pwLogClust,
  [in]  const SCRIPT_VISATTR  *psva,
  [out] int                   *piDx
);

パラメーター

[in] psa

SCRIPT_ANALYSIS構造体へのポインター。

[in] cChars

実行内の論理コード ポイントの数。

[in] cGlyphs

実行中のグリフの数。

[in] piGlyphWidth

グリフの拡張幅の配列へのポインター。

[in] pwLogClust

論理クラスターの配列へのポインター。

[in] psva

ビジュアル属性を定義 するSCRIPT_VISATTR 構造体へのポインター。

[out] piDx

論理幅の配列へのポインター。

戻り値

現在、すべてのケースでS_OKが返されます。

注釈

この関数は、フォントに依存しない方法で幅を記録する場合に便利です。 特定のフォントに対して計算されたグリフの進み幅を、コード ポイントごとに 1 つずつ、コード ポイントと同じ順序で論理幅に変換します。 同じ文字列が別のフォントを使用して別のデバイスに表示される場合は、 ScriptApplyLogicalWidth を 使用して元の配置を近似することで論理幅を適用できます。 このメカニズムは、印刷プレビューを実装するときに役立ちます。 プレビュー画面では、最終的な印刷結果のレイアウトと配置を一致することが重要です。

メモ 合字グリフの幅は、それらが表す文字の間で均等に分割されます。
 
大事なWindows 8以降: Windows 7 で実行する機能を維持するには、Uniscribe を使用するモジュールで、ライブラリ リストで gdi32.lib の前に Usp10.lib を指定する必要があります。
 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー usp10.h
Library Usp10.lib
[DLL] Usp10.dll
再頒布可能パッケージ Windows Me/98/95 のインターネット エクスプローラー 5 以降

こちらもご覧ください

SCRIPT_ANALYSIS

SCRIPT_VISATTR

ScriptApplyLogicalWidth

Uniscribe

Uniscribe 関数