次の方法で共有


ScriptPositionSingleGlyph 関数 (usp10.h)

OpenType 処理用のフォントで指定された機能を使用して、1 つの調整で 1 つのグリフを配置します。 ほとんどの場合、アプリケーションでは、この関数を使用して、行の先頭または末尾にグリフを光学式で配置します。

構文

HRESULT ScriptPositionSingleGlyph(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           LONG            lParameter,
  [in]           WORD            wGlyphId,
  [in]           int             iAdvance,
  [in]           GOFFSET         GOffset,
  [out]          int             *piOutAdvance,
  [out]          GOFFSET         *pOutGoffset
);

パラメーター

[in, optional] hdc

デバイス コンテキストを処理します。 詳細については、「 キャッシュ」を参照してください。

[in, out] psc

スクリプト キャッシュを識別する SCRIPT_CACHE 構造体へのポインター。

[in, optional] psa

ScriptItemizeOpenType の以前の呼び出しから取得したSCRIPT_ANALYSIS構造体へのポインター。 この構造体は、事前の幅を取得できるように、シェーピング エンジンを識別します。

または、アプリケーションでこのパラメーターを NULL に設定して、フィルター処理されていない結果を取得することもできます。

[in] tagScript

シェイプ用のスクリプト タグを定義する OPENTYPE_TAG 構造体。

[in] tagLangSys

シェイプ用の言語タグを定義する OPENTYPE_TAG 構造体。

[in] tagFeature

代替グリフの整形に使用する特徴タグを定義する OPENTYPE_TAG 構造体。

[in] lParameter

wGlyphId で指定された識別子に単一の置換を適用するかどうかを指定するフラグ。 アプリケーションは、このパラメーターを 1 に設定して、識別子に単一の置換機能を適用します。 関数が機能を適用しない場合、アプリケーションは パラメーターを 0 に設定します。

[in] wGlyphId

整形されている元のグリフの識別子。

[in] iAdvance

元のグリフの前の幅。

[in] GOffset

元のグリフオフセット。 通常、この値は ScriptPlaceOpenType または ScriptPlace の出力です。

[out] piOutAdvance

この関数が代替グリフ用に調整された新しい事前幅を取得する場所へのポインター。

[out] pOutGoffset

この関数が代替グリフ用に調整された新しいグリフ オフセットを取得する場所へのポインター。

戻り値

処理が正常に終了した場合は 0 を返します。 関数が成功しない場合は、0 以外の HRESULT 値を返します。 アプリケーションは、 SUCCEEDED マクロと FAILED マクロを使用して戻り値をテストできます。

注釈

この関数は、特定のグリフの事前の幅やオフセットを調整することによって、個々のグリフを配置します。 関数は、フォントに必要な調整が 1 つだけであることを前提としています。

この関数の一般的な用途は、特定の文字によって行われた視覚的な印象を考慮する余白のわずかな調整です。 たとえば、ラテン語のスクリプトでは、行の先頭で、グリフの左側に垂直線がない初期大文字 ("T" や "O" など) を左に少し調整するのが一般的です。 これを行うと厳密な線形マージンが壊れますが、目は余白をより均等に認識します。

次の例は、この効果を示しています。 最初の例は厳密な配置を示しています。次の 2 つの例では、左側の最初の "T" の調整を示します。 調整は、それぞれ 1 ピクセルと 2 ピクセルずつです。 右側の拡大画像は、連続する各ケースで "T" が左余白に少し遠くに押し込む様子を示しています。

同じテキスト ブロックを 3 回示す図。それぞれがわずかに異なる配置を示す拡大表示
大事なWindows 8以降: Windows 7 で実行する機能を維持するには、Uniscribe を使用するモジュールで、ライブラリ リストで gdi32.lib の前に Usp10.lib を指定する必要があります。
 

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー usp10.h
Library Usp10.lib
[DLL] Usp10.dll
再頒布可能パッケージ Windows XP Usp10.dll バージョン 1.600 以降

こちらもご覧ください

キャッシュ

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Uniscribe

Uniscribe 関数