SetConsoleWindowInfo関数
重要
このドキュメントでは、エコシステム ロードマップの一部ではなくなったコンソール プラットフォームの機能について説明します。 このコンテンツを新しい製品で使用することはお勧めしませんが、今後も既存の使用をサポートし続けます。 推奨される最新のソリューションでは、クロスプラットフォーム シナリオでの互換性を最大限に高める仮想ターミナル シーケンスに重点を置いています。 この設計決定の詳細については、クラシック コンソールと仮想ターミナルのドキュメントを参照してください。
コンソール画面バッファーのウィンドウの現在のサイズと位置を設定します。
構文
BOOL WINAPI SetConsoleWindowInfo(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bAbsolute,
_In_ const SMALL_RECT *lpConsoleWindow
);
パラメーター
hConsoleOutput [in]
コンソール画面バッファーのハンドル。 ハンドルには、GENERIC_READ アクセス権があります。 詳細については、「コンソール バッファーのセキュリティとアクセス権」を参照してください。
bAbsolute [in]
このパラメーターが TRUE の場合、座標はウィンドウの新しい左上隅と右下隅を指定します。 FALSE の場合、座標は現在のウィンドウコーナー座標を基準とします。
lpConsoleWindow [in]
ウィンドウの新しい左上隅と右下隅を指定するSMALL_RECT 構造体へのポインター。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
指定したウィンドウの四角形がコンソール画面バッファーの境界を超えて拡張された場合、関数は失敗します。 つまり、lpConsoleWindow 四角形の Top メンバーと Left メンバー (bAbsolute が FAL の場合は計算される上と左の座標Standard Edition) を 0 未満にすることはできません。 同様に、 Bottom メンバーと Right メンバー (または計算された下座標と右座標) をそれぞれ (画面バッファーの高さ – 1) と (画面バッファーの幅 – 1) より大きくすることはできません。 この関数は、Right メンバー (または計算された右座標) が Leftメンバー (または計算された左座標) 以下の場合、または Bottom メンバー (または計算された下座標) が Top メンバー (または計算された上座標) 以下の場合にも失敗します。
複数の画面バッファーがあるコンソールの場合、1 つの画面バッファーのウィンドウ位置を変更しても、他の画面バッファーのウィンドウ位置には影響しません。
画面バッファーのウィンドウの現在のサイズと位置を確認するには、GetConsoleScreenBufferInfo 関数を使用します。 この関数は、現在の画面バッファー サイズ、現在のフォント サイズ、および画面サイズを指定すると、ウィンドウの最大サイズも返します。 GetLargestConsoleWindowSize関数は、現在のフォントと画面サイズを指定すると最大ウィンドウ サイズを返しますが、コンソール画面バッファーのサイズは考慮しません。
SetConsoleWindowInfo を使用すると、サイズを変更せずにウィンドウの四角形の位置をシフトすることで、コンソール画面バッファーの内容をスクロールできます。
ヒント
この API は推奨されておらず、同等の 仮想ターミナル はありません。 この決定により、Windows プラットフォームは、ユーザーがこのプレゼンテーション オプションを完全に制御できる他のオペレーティング システムと意図的に調整されます。 この API を使用している場合、クロスプラットフォーム ユーティリティや SSH などのトランスポートを介したアプリケーションのリモート処理は、想定どおりに動作しない可能性があります。
例
例については、「画面バッファーのウィンドウのスクロール」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー | ConsoleApi2.h(WinCon.h 経由、Windows.h を含む) |
ライブラリ | Kernel32.lib |
[DLL] | Kernel32.dll |