SetWindowPos

子、ポップアップ、またはトップレベルウィンドウのサイズ、位置、Z オーダーを変更する。これらのウィンドウは画面上の表示順に並んでおり、最前面のウィンドウが最上位ランクを持ち Z オーダーの先頭となる。

SetWindowPos hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags

hWnd : [intptr] 型: HWND ウィンドウへのハンドル。
hWndInsertAfter : [intptr] 型: HWND
X : [int] 型: int ウィンドウ左辺の新しい位置(クライアント座標)。
Y : [int] 型: int ウィンドウ上辺の新しい位置(クライアント座標)。
cx : [int] 型: int ウィンドウの新しい幅(ピクセル単位)。
cy : [int] 型: int ウィンドウの新しい高さ(ピクセル単位)。
uFlags : [int] 型: UINT

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

解説

子、ポップアップ、またはトップレベルウィンドウのサイズ、位置、Z
オーダーを変更する。これらのウィンドウは画面上の表示順に並んでおり、最前面のウィンドウが最上位ランクを持ち Z オーダーの先頭となる。

[戻り値]
型: BOOL 関数が成功した場合、戻り値は 0 以外。失敗した場合は 0。拡張エラー情報を得るには GetLastError
を呼び出す。

[備考]
Vista 以降のアーキテクチャ変更により、すべてのサービスは対話型デスクトップから Session 0 へ移された。hwnd
およびウィンドウマネージャ操作はセッション内でのみ有効で、セッションを越えた hwnd 操作は失敗する。詳細は The Windows
Vista Developer Story: Application Compatibility Cookbook
を参照。SetWindowLong で特定のウィンドウデータを変更した場合、変更を反映させるには SetWindowPos
を呼ぶ必要がある。uFlags には次の組み合わせを使う: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER
| SWP_FRAMECHANGED。ウィンドウを最前面にするには 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