DeferWindowPos

指定したウィンドウに対する複数ウィンドウ位置構造体を更新する。

DeferWindowPos hWinPosInfo, hWnd, hWndInsertAfter, x, y, cx, cy, uFlags

hWinPosInfo : [intptr] 型: HDWP 1 つ以上のウィンドウのサイズおよび位置情報を保持する、複数ウィンドウ位置構造体へのハンドル。この構造体は BeginDeferWindowPos または直近の DeferWindowPos 呼び出しによって返される。
hWnd : [intptr] 型: HWND 構造体に更新情報を格納するウィンドウへのハンドル。複数ウィンドウ位置構造体内のすべてのウィンドウは同じ親を持たなければならない。
hWndInsertAfter : [intptr] 型: HWND
x : [int] 型: int ウィンドウ左上隅の x 座標。
y : [int] 型: int ウィンドウ左上隅の y 座標。
cx : [int] 型: int ウィンドウの新しい幅 (ピクセル単位)。
cy : [int] 型: int ウィンドウの新しい高さ (ピクセル単位)。
uFlags : [int] 型: UINT

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

解説

指定したウィンドウに対する複数ウィンドウ位置構造体を更新する。

[戻り値]
型: HDWP
戻り値は更新された複数ウィンドウ位置構造体を識別する。この関数が返すハンドルは、関数に渡されたハンドルと異なる場合がある。この関数が返した新しいハンドルは、次回の
DeferWindowPos または EndDeferWindowPos
呼び出しに渡す必要がある。関数の成功に必要なシステムリソースが不足している場合、戻り値は NULL となる。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
DeferWindowPos の呼び出しが失敗した場合、アプリケーションはウィンドウ配置処理を中止し、EndDeferWindowPos
を呼び出してはならない。SWP_NOZORDER が指定されていない場合、システムは hWnd パラメータで指定されたウィンドウを
hWndInsertAfter パラメータで指定されたウィンドウの直後に配置する。hWndInsertAfter が NULL または
HWND_TOP の場合、システムは hWnd ウィンドウを Z オーダーの最上位に配置する。hWndInsertAfter が
HWND_BOTTOM に設定されている場合、システムは hWnd ウィンドウを Z
オーダーの最下位に配置する。子ウィンドウのすべての座標は親ウィンドウのクライアント領域の左上隅を基準とする。ウィンドウを最前面ウィンドウにするには、hWndInsertAfter
に HWND_TOPMOST フラグを設定し、SWP_NOZORDER
フラグを設定しないようにするか、既存の最前面ウィンドウよりも上になるように Z
オーダーの位置を設定する。非最前面ウィンドウが最前面になると、その所有する子ウィンドウも最前面になる。ただし、所有者は変更されない。SWP_NOACTIVATE
フラグと SWP_NOZORDER フラグのどちらも指定されていない場合 (つまり、アプリケーションがウィンドウのアクティブ化と Z
オーダーの変更を同時に要求した場合)、hWndInsertAfter に指定された値は次の場合にのみ使用される。
(以下省略)

情報

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