境界線 (border) | |
タイトル バー (title bar) | |
アイコン (icon) | |
最小化ボタン (Minimize button)、最大化ボタン (Maximize button) または元に戻すボタン (Restore button) | |
閉じるボタン (Close button) | |
システム メニュー (System menu) | |
スクロール バー (scroll bar) |
非クライアント領域を含まない、その内側にあたる領域です。
HWND CreateWindow( LPCTSTR lpClassName, // 登録されているクラス名 LPCTSTR lpWindowName, // ウィンドウ名 DWORD dwStyle, // ウィンドウスタイル (Window Stylesで定義されている値の組み合わせ) int x, // ウィンドウの横方向の位置 int y, // ウィンドウの縦方向の位置 int nWidth, // ウィンドウの幅 int nHeight, // ウィンドウの高さ HWND hWndParent, // 親ウィンドウまたはオーナーウィンドウのハンドル HMENU hMenu, // メニューハンドルまたは子ウィンドウ ID HINSTANCE hInstance, // アプリケーションインスタンスのハンドル LPVOID lpParam // ウィンドウ作成データ );CreateWindow 関数 | MSDN CreateWindowW macro | Microsoft Learn
オーバーラップウィンドウのとき、xをCW_USEDEFAULTとすると既定の位置が使用され、yは無視される。
オーバーラップウィンドウのとき、nWidthをCW_USEDEFAULTとすると既定の幅と高さが使用され、nHeightは無視される。
HWND GetWindow( HWND hWnd, // 元ウィンドウのハンドル UINT uCmd // 関係 );GetWindow 関数 | MSDN
HWND FindWindow( LPCTSTR lpClassName, // クラス名 LPCTSTR lpWindowName // ウィンドウ名 );FindWindow 関数 | MSDN
HWND GetTopWindow(
HWND hWnd // 親ウィンドウのハンドル
);
GetTopWindow 関数 | MSDN
HWND GetDesktopWindow(VOID);GetDesktopWindow 関数 | MSDN
BOOL MoveWindow( HWND hWnd, // ウィンドウのハンドル int X, // 横方向の位置 int Y, // 縦方向の位置 int nWidth, // 幅 int nHeight, // 高さ BOOL bRepaint // 再描画オプション );MoveWindow 関数 | MSDN
BOOL SetWindowPlacement( HWND hWnd, // ウィンドウのハンドル CONST WINDOWPLACEMENT *lpwndpl // 位置データ );SetWindowPlacement 関数 | MSDN
BOOL GetWindowPlacement( HWND hWnd, // ウィンドウのハンドル WINDOWPLACEMENT *lpwndpl // 位置データ );GetWindowPlacement 関数 | MSDN
BOOL WINAPI SetWindowPos( _In_ HWND hWnd, // ウィンドウのハンドル _In_opt_ HWND hWndInsertAfter, // Zオーダーの基準となるウィンドウへのハンドル _In_ int X, // _In_ int Y, // _In_ int cx, // _In_ int cy, // _In_ UINT uFlags // );SetWindowPos function (Windows) | MSDN SetWindowPos 関数 | MSDN
GetConsoleWindow()で、コンソール ウィンドウのハンドルを取得できます。またはGetConsoleTitle()でウィンドウのタイトルを取得し、それをFindWindow()で探すことでも取得できます。SDK32:コンソール ウィンドウのハンドル取得
SetWindowPos()で、ウィンドウの位置とサイズを変更できます。set console position - C++ Forum
HWND hWnd = GetConsoleWindow(); SetWindowPos(hWnd, HWND_TOPMOST, 100, 100, 300, 300, NULL);
これを実行時に変更するには、システムメニュー (タイトルバー左端のアイコンから表示) でプロパティを選択し、[レイアウト]タブで指定します。