GetTextExtentPointI

GetTextExtentPointI 関数は、指定したグリフインデックス配列の幅と高さを計算する。

GetTextExtentPointI hdc, pgiIn, cgi, psize

hdc : [intptr] デバイスコンテキストのハンドル。
pgiIn : [var] グリフインデックス配列へのポインタ。
cgi : [int] グリフインデックス数を指定する。
psize : [var] 文字列の寸法(論理単位)を受け取る SIZE 構造体へのポインタ。

(プラグイン / モジュール : gdi32.dll)

解説

GetTextExtentPointI 関数は、指定したグリフインデックス配列の幅と高さを計算する。

[戻り値]
関数が成功した場合、戻り値は 0 以外である。失敗した場合は 0 である。

[備考]
GetTextExtentPointI
関数は、現在選択されているフォントを使ってグリフインデックス配列の寸法を計算する。幅と高さ(論理単位)はクリッピングを考慮せずに計算される。この関数がテキストの長さを返すとき、テキストは水平である(つまり
escapement は常に 0)と想定する。これはテキストの水平と垂直の両方の測定に当てはまる。0 以外の escapement
を指定するフォントを使用していても、この関数はテキストの長さを計算する際に角度を使わない。アプリケーションが明示的に変換する必要がある。ただし、グラフィックモードが
GM_ADVANCED に設定され、文字方向が印刷方向から 90
度異なる場合、この関数が返す値はこのルールに従わない。文字方向と印刷方向が一致する場合、この関数は SIZE 構造体として { cx :
116, cy : 18 } のような寸法を返す。文字方向と印刷方向が 90 度異なる場合、SIZE 構造体として { cx : 18,
cy : 116 }
を返す。一部のデバイスは文字間をカーニングするため、各グリフインデックスの長さの合計はグリフインデックス配列全体の長さと等しくならない場合がある。計算される文字列幅は
SetTextCharacterExtra 関数で設定された文字間隔を考慮する。

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs