最終更新 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 );
|