<Return[S]><Top>

SetWindowPos

Declare Function Api_SetWindowPos& Lib "user32" Alias "SetWindowPos" (ByVal hWnd&, ByVal hWndInsertAfter&, ByVal X&, ByVal Y&, ByVal CX&, ByVal CY&, ByVal uFlags&)

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

子ウィンドウ、ポップアップウィンドウ、またはトップレベルウィンドウのサイズ、位置、および Z オーダーを変更する。これらのウィンドウは、その画面上での表示に従って順序が決めらる。最前面にあるウィンドウは最も高いランクを与えられ、Z オーダーの先頭に置かれる。

パラメータ
hWnd
    ウィンドウのハンドルを指定する。
hWndInsertAfter
    Z オーダーを決めるためのウィンドウハンドルを指定する。

    hWnd で指定したウインドウは、このパラメータで指定したウィンドウの後ろに置かれる。

    このパラメータには、次のいずれかの値を指定することもできる。

    値                                 

意味                                                                                                                                     

    HWND_BOTTOM

 

ウィンドウを Z オーダーの最後に置きる。hWnd パラメータで指定したウィンドウが最前面ウィンドウだった場合、

このウィンドウは最前面ウィンドウではなくなり、ほかのすべてのウィンドウの下に置かれる。

    HWND_NOTOPMOST

 

 

ウィンドウを最前面ウィンドウ以外のすべてのウィンドウの前( つまり、すべての最前面ウィンドウの後ろ)に挿

入する。hWnd パラメータで指定したウィンドウが既に最前面ウィンドウではなかった場合、このフラグは意味を

持たない。

    HWND_TOP

ウィンドウを Z オーダーの先頭に置く。

    HWND_TOPMOST

ウィンドウを最前面ウィンドウではないすべてのウィンドウの前に挿入する。このウィンドウは、アクティブでないとき

にも最前面に表示される。

X
    ウィンドウの左上端の新しい x 座標をクライアント座標で指定する。
Y
    ウィンドウの左上端の新しい y 座標をクライアント座標で指定する。
cx
    ウィンドウの新しい幅をピクセル単位で指定する。
cy
    ウィンドウの新しい高さをピクセル単位で指定する。
uFlags
    ウィンドウのサイズと位置の変更に関するフラグを指定する。次の値を組み合わせて指定できる。

    値                                           

意味                                                                                                                             

    SWP_ASYNCWINDOWPOS

この関数を呼び出したスレッドとウィンドウを所有するスレッドが異なる入力キューに関連付けられている

場合、ウィンドウを所有するスレッドへ要求が送られる。こうすると、要求を受け取ったスレッドが要求を

処理している間も、関数を呼び出したスレッドの実行が止まってしまうことはない。

    SWP_DEFERERASE WM_SYNCPAINT

メッセージが生成されないようにする。

    SWP_DRAWFRAME

ウィンドウを囲む枠( ウィンドウクラスの記述部分で定義されている)を描画する。

    SWP_FRAMECHANGED

SetWindowLong 関数を使って新しいフレームスタイルの設定を適用する。
ウィンドウサイズが変更されない場合にも、ウィンドウに WM_NCCALCSIZE メッセージを送る。このフラ

グを指定しなかった場合、ウィンドウサイズが変更される場合にしか WM_NCCALCSIZE メッセージは

送られない。

    SWP_HIDEWINDOW

ウィンドウを非表示にする。

    SWP_NOACTIVATE

ウィンドウをアクティブ化しない。このフラグをセットしなかった場合、ウィンドウはアクティブ化され、最前

面ウィンドウまたは非最前面ウィンドウのどちらか(hWndInsertAfter パラメータの設定による)のグル

ープの最上位に移動する。

    SWP_NOCOPYBITS

クライアント領域の内容全体を破棄する。このフラグをセットしなかった場合は、クライアント領域の有効

な内容が保存され、再配置後のウィンドウのクライアント領域にコピーし直される。

    SWP_NOMOVE

現在の位置を維持する(X パラメータと Y パラメータを無視する)。

    SWP_NOOWNERZORDER

オーナーウィンドウの Z オーダーを変更しない。

    SWP_NOREDRAW

変更結果を再描画しない。このフラグを指定すると、再描画は一切行われない。このフラグは、クライア

ント領域、非クライアント領域( タイトルバーおよびスクロールバーを含む)、および親ウィンドウの、こ

のウィンドウが移動した結果現れた部分のすべてに適用される。このフラグをセットした場合、ウィンドウ

や親ウィンドウの再描画の必要な部分は、アプリケーションで明示的に無効化または再描画しなければ

ならない。

    SWP_NOREPOSITION

SWP_NOOWNERZORDER フラグと同じである。

    SWP_NOSENDCHANGING

ウィンドウに WM_WINDOWPOSCHANGING メッセージが送られないようにする。

    SWP_NOSIZE

現在のサイズを維持する(cx パラメータと cy パラメータを無視する)。

    SWP_NOZORDER

現在の Z オーダーを維持する(hWndInsertAfter パラメータを無視する)。

    SWP_SHOWWINDOW

ウィンドウを表示する。


戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。