GetTextExtentExPointI

GetTextExtentExPointI 関数は、指定されたスペースに収まる指定文字列内の文字数を取得し、その各文字のテキスト長で配列を満たす。

GetTextExtentExPointI hdc, lpwszString, cwchString, nMaxExtent, lpnFit, lpnDx, lpSize

hdc : [intptr] デバイスコンテキストのハンドル。
lpwszString : [var] 長さを取得する対象のグリフインデックス配列へのポインタ。
cwchString : [int] pgiIn パラメータが指す配列内のグリフ数。
nMaxExtent : [int] 整形された文字列の最大許容幅(論理単位)。
lpnFit : [var] nMaxExtent パラメータで指定されたスペースに収まる文字の最大数を受け取る整数へのポインタ。lpnFit パラメータが NULL の場合、nMaxExtent パラメータは無視される。
lpnDx : [var] 部分グリフ長を受け取る整数配列へのポインタ。配列の各要素は、グリフインデックス配列の先頭から、nMaxExtent パラメータで指定されたスペースに収まるグリフの 1 つまでの距離(論理単位)を示す。この配列は cgi パラメータで指定されたグリフインデックス数以上の要素を持つ必要があるが、関数は lpnFit パラメータで指定された数のグリフインデックスに対してのみ長さを埋める。lpnFit が NULL の場合、関数は部分文字列幅を計算しない。
lpSize : [var] グリフインデックス配列の寸法(論理単位)を受け取る SIZE 構造体へのポインタ。この値は NULL であってはならない。

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

解説

GetTextExtentExPointI
関数は、指定されたスペースに収まる指定文字列内の文字数を取得し、その各文字のテキスト長で配列を満たす。

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

[備考]
lpnFit と alpDx パラメータの両方が NULL の場合、GetTextExtentExPointI 関数の呼び出しは
GetTextExtentPointI 関数の呼び出しと等価である。この関数がテキストの長さを返すとき、テキストは水平である(つまり
escapement は常に 0)と想定する。これはテキストの水平と垂直の両方の測定に当てはまる。0 以外の escapement
を指定するフォントを使用していても、この関数はテキストの長さを計算する際に角度を使わない。アプリケーションが明示的に変換する必要がある。ただし、グラフィックモードが
GM_ADVANCED に設定され、文字方向が印刷方向から 90
度異なる場合、この関数が返す値はこのルールに従わない。文字方向と印刷方向が一致する場合、この関数は SIZE 構造体として { cx :
116, cy : 18 } のような寸法を返す。文字方向と印刷方向が 90 度異なる場合、SIZE 構造体として { cx : 18,
cy : 116 } を返す。

情報

プラグイン / モジュール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