デスクトップのウインドウを整列するには次の関数で簡単に行えます。(戻る)
- デスクトップのウインドウを重ねて表示(CascadeWindows)
- デスクトップのウインドウを上下に並べて表示(TileWindows)
- デスクトップのウインドウを左右に並べて表示(TileWindows)
プロトタイプ宣言
WORD CascadeWindows( HWND hParent, // 親ウインドウのハンドル UINT wHow, // 重ねる方法のオプション CONST RECT* lpRect, // 整列範囲の長方形領域 UINT cKids, // 整列するウインドウの個数 const HWND* lpKids // 整列するウインドウの配列 ); WORD TileWindows( HWND hwndParent, // 親ウインドウのハンドル UINT wHow, // 並べる方法のオプション CONST RECT* lpRect, // 整列範囲の長方形領域 UINT cKids, // 整列するウインドウの個数 const HWND* lpKids // 整列するウインドウの配列 );
サンプル
#include <stdio.h> #include <windows.h> // メイン関数 int main( void ) { WORD wCount; // 重ねて表示(S) wCount = CascadeWindows( NULL, 0, NULL, 0, NULL ); printf( TEXT("%u 個のウインドウを重ねて表示しました。\n"), wCount ); getchar(); // 上下に並べて表示(H) wCount = CascadeWindows( NULL, 0, NULL, 0, NULL ); wCount = TileWindows( NULL, MDITILE_HORIZONTAL, NULL, 0, NULL ); printf( TEXT("%u 個のウインドウを上下に並べて表示しました。\n"), wCount ); getchar(); // 左右に並べて表示(E) wCount = CascadeWindows( NULL, 0, NULL, 0, NULL ); wCount = TileWindows( NULL, MDITILE_VERTICAL, NULL, 0, NULL ); printf( TEXT("%u 個のウインドウを左右に並べて表示しました。\n"), wCount ); return 0; }
- 上記のサンプルの[重ねて表示(S)]、[上下に並べて表示(H)]、[左右に並べて表示(E)]の表現はタスクバーで出てくる右メニューに合わせてます。
- このため MDITILE_HORIZONTAL 定数が上下に並べて表示、MDITILE_VERTICAL 定数が左右に並べて表示という表現になってます。