ScrollConsoleScreenBuffer 関数

重要

このドキュメントでは、エコシステム ロードマップの一部ではなくなったコンソール プラットフォームの機能について説明します。 このコンテンツを新しい製品で使用することはお勧めしませんが、今後も既存の使用をサポートし続けます。 推奨される最新のソリューションでは、クロスプラットフォーム シナリオでの互換性を最大限に高める仮想ターミナル シーケンスに重点を置いています。 この設計決定の詳細については、クラシック コンソールと仮想ターミナルのドキュメントを参照してください。

スクリーン バッファー内のデータ ブロックを移動します。 移動の効果はクリッピング四角形を指定することで制限できるため、クリッピング四角形の外側にあるコンソール スクリーン バッファーの内容は変更されません。

構文

BOOL WINAPI ScrollConsoleScreenBuffer(
  _In_           HANDLE     hConsoleOutput,
  _In_     const SMALL_RECT *lpScrollRectangle,
  _In_opt_ const SMALL_RECT *lpClipRectangle,
  _In_           COORD      dwDestinationOrigin,
  _In_     const CHAR_INFO  *lpFill
);

パラメーター

hConsoleOutput [in]
コンソール画面バッファーのハンドル。 ハンドルには、GENERIC_READ アクセス権があります。 詳細については、「コンソール バッファーのセキュリティとアクセス権」を参照してください。

lpScrollRectangle [in]
移動するコンソール スクリーン バッファーの四角形の左上および右下の座標をメンバーが指定する SMALL_RECT 構造体へのポインター。

lpClipRectangle [in, optional]
スクロールの影響を受けるコンソール スクリーン バッファーの四角形の左上および右下の座標をメンバーが指定する SMALL_RECT 構造体へのポインター。 このパラメーターは、NULL でもかまいません。

dwDestinationOrigin [in]
lpScrollRectangle コンテンツの新しい場所の左上隅を文字で指定する COORD 構造体。

lpFill [in]
移動の結果として空のままにされた lpScrollRectangle と lpClipRectangle のインターセクションのセルの塗りつぶしに使用する文字属性と色属性を指定するCHAR_INFO 構造体へのポインター。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

ScrollConsoleScreenBuffer は、lpScrollRectangle パラメーターで指定された スクリーン バッファーの四角形領域の内容をコンソール スクリーン バッファーの別の領域にコピーします。 ターゲット四角形のサイズは lpScrollRectangle 四角形と同じで、dwDestinationOrigin パラメーターで指定された座標に左上隅が表示されます。 ターゲット四角形と重複しない lpScrollRectangle の部分には、lpFill パラメーターで指定された文字属性と色属性が入力されます。

クリッピング四角形は、lpScrollRectangle 四角形とターゲット四角形の両方で行われた変更に適用されます。 たとえば、クリッピング四角形に lpFill の内容によって塗りつぶされた領域が含まれていない場合、その領域の元の内容は変更されません。

スクロール領域またはターゲット領域がコンソール スクリーン バッファーのサイズを超えて拡張された場合、それらはクリップされます。 たとえば、lpScrollRectangle が (0,0) および (19,19) に含まれる領域であり、dwDestinationOrigin が (10,15) の場合、ターゲット四角形は (10,15) および (29,34) に含まれる領域です。 ただし、コンソール スクリーン バッファーの幅が 50 文字、高さが 30 文字の場合、ターゲットの四角形は (10,15) と (29,29) にクリップされます。 パラメーターで SMALL_RECT 構造体が指定されている場合、コンソール スクリーン バッファーへの変更も lpClipRectangle に従ってクリップされます。 クリッピング四角形が (0,0) および (49,19) として指定されている場合、コンソール スクリーン バッファーのその領域で発生した変更のみが行われます。

この関数では、Unicode 文字またはコンソールの現在のコード ページの 8 ビット文字が使用されます。 コンソールのコード ページには、最初はシステムの OEM コード ページが既定で設定されます。 コンソールのコード ページを変更するには、SetConsoleCP または SetConsoleOutputCP 関数を使用します。 従来のユーザーは、chcp または mode con cp select= コマンドを使用することもできますが、それは新規の開発ではお勧めできません。

ヒント

この API は推奨されておらず、同等の 仮想ターミナル はありません。 スクロール余白を使ってスクリーンの領域を修正したり、カーソルの配置を領域外のアクティブな位置に設定したり、改行を使ってテキストを強制的に移動したりできます。 残りのスペースは、カーソルを移動し、グラフィカル属性を設定し、通常のテキストを書き込むことで塗りつぶすことができます。

例については、「画面バッファーのコンテンツのスクロール」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー ConsoleApi2.h(WinCon.h 経由、Windows.h を含む)
ライブラリ Kernel32.lib
[DLL] Kernel32.dll
Unicode 名と ANSI 名 ScrollConsoleScreenBufferW (Unicode) と ScrollConsoleScreenBufferA (ANSI)

関連項目

CHAR_INFO

コンソール関数

COORD

画面バッファーのスクロール

SetConsoleCP

SetConsoleOutputCP

SetConsoleWindowInfo

SMALL_RECT