ウィンドウの位置やサイズを変更する

最終更新 2003 12/17

サンプルのダウンロード → API_SetWindowPos.lzh(37k)

サンプルプログラムのスクリーンショット

全ソースコード



SetWindowPos 関数

    対応しているバージョン
    95, 98, Me, NT3.1以降, CE1.0以降, 2000, XP
    
    使用するヘッダとライブラリ
    winuser.h
    user32.lib
ウィンドウのサイズや位置を変更するには SetWindowPos() 関数を使います。 SetWindowPos() 関数でできることは ・ウィンドウの表示位置の変更 ・ウィンドウのサイズの変更 ・他のウィンドウと重なった時の表示順(Z順位)の変更 以上の3つの状態を変更できます。 ●表示位置を変更する SetWindowPos( HWND, NULL, 左位置, 上位置, 0, 0, SWP_NOSIZE | SWP_NOZORDER ); ●ウィンドウのサイズを変更する SetWindowPos( HWND, NULL, 0, 0, 横幅, 高さ, SWP_NOMOVE | SWP_NOZORDER ); ●ウィンドウが重なる順番(Z順位)を変更する SetWindowPos( HWND, zorder, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE ); zorder に指定できる値(MSDNライブラリから抜粋)

HWND_BOTTOM    ウィンドウを Z 順位の最後 (一番下) に置きます。
               hWnd パラメータで指定したウィンドウが最前面ウィンドウ 
               (WS_EX_TOPMOST) のときは、そのウィンドウは最前面ウィンドウ
               ではなくなり、ほかのすべてのウィンドウの下に置かれます。 
               
HWND_NOTOPMOST ウィンドウを最前面ウィンドウ (WS_EX_TOPMOST) 以外の
               すべてのウィンドウの上位 (すなわち、すべての最前面の
               ウィンドウの下位 ) に置きます。
               hWnd パラメータで指定したウィンドウが最前面ウィンドウで
               ないときはこのフラグは意味を持ちません。
               
HWND_TOP       ウィンドウを Z 順位の最初 (一番上) に置きます。
               ただし、非最前面ウィンドウが最前面ウィンドウにされることは
               ありません。
               
HWND_TOPMOST   ウィンドウを最前面ウィンドウにします。 
位置・サイズ・Z順位をいっぺんに変更 SetWindowPos( HWND, HWND_TOPMOST, 左位置, 上位置, 横幅, 高さ, 0 );

| home |