SetParent

指定した子ウィンドウの親ウィンドウを変更する。

SetParent hWndChild, hWndNewParent

hWndChild : [intptr] 型: HWND 子ウィンドウへのハンドル。
hWndNewParent : [intptr] 型: HWND 新しい親ウィンドウへのハンドル。NULL の場合、デスクトップウィンドウが新しい親となる。HWND_MESSAGE の場合、子ウィンドウはメッセージ専用ウィンドウになる。

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

解説

指定した子ウィンドウの親ウィンドウを変更する。

[戻り値]
型: HWND 関数が成功した場合、戻り値は以前の親ウィンドウへのハンドル。失敗した場合は NULL。拡張エラー情報を得るには
GetLastError を呼び出す。

[備考]
アプリケーションは SetParent を使ってポップアップ、オーバーラップ、子ウィンドウの親を設定できる。hWndChild
が表示中の場合、システムは適切な再描画を行う。互換性のため、SetParent は親変更対象ウィンドウの WS_CHILD や
WS_POPUP スタイルを変更しない。したがって hWndNewParent が NULL の場合は SetParent 呼び出し後に
WS_CHILD ビットをクリアし WS_POPUP を設定すべきである。逆に hWndNewParent が非 NULL
でウィンドウが以前デスクトップの子であった場合、呼び出し前に WS_POPUP をクリアし WS_CHILD
を設定すべきである。ウィンドウの親を変更するときは両ウィンドウの UISTATE を同期すべきである。詳細は
WM_CHANGEUISTATE と WM_UPDATEUISTATE を参照。hWndNewParent と hWndChild
が異なる DPI 認識モードで動作している場合、予期しない動作やエラーが発生する可能性がある。その挙動は次の表にまとめる:
(以下省略)

情報

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