Von Bedeutung
このドキュメントでは、 エコシステム ロードマップの一部ではなくなったコンソール プラットフォームの機能について説明します。 このコンテンツを新しい製品で使用することはお勧めしませんが、今後も既存の使用をサポートし続けます。 推奨される最新のソリューションでは、クロスプラットフォーム シナリオでの互換性を最大限に高める 仮想ターミナル シーケンス に重点を置いています。 この設計決定の詳細については、 クラシック コンソールと仮想ターミナル のドキュメントを参照してください。
低レベルのコンソール出力関数を使用すると、画面バッファーの文字セルに直接アクセスできます。 1 セットの関数は、コンソール画面バッファー内の任意の場所から始まる連続するセルに対して読み取りまたは書き込みを行います。 別の関数セットは、セルの四角形のブロックから読み取りまたは書き込みを行います。
次の関数は、指定したセルから始まる、画面バッファー内の指定された数の連続する文字セルから読み取りまたは書き込みを行います。
| 機能 | 説明 |
|---|---|
| ReadConsoleOutputCharacter | 画面バッファーから Unicode または ANSI 文字の文字列をコピーします。 |
| WriteConsoleOutputCharacter | Unicode または ANSI 文字の文字列を画面バッファーに書き込みます。 |
| ReadConsoleOutputAttribute | 画面バッファーからテキストと背景色の属性の文字列をコピーします。 |
| WriteConsoleOutputAttribute | テキスト属性と背景色属性の文字列を画面バッファーに書き込みます。 |
| FillConsoleOutputCharacter | 画面バッファー内の指定した数の連続するセルに、1 つの Unicode または ANSI 文字を書き込みます。 |
| FillConsoleOutputAttribute | テキストと背景色属性の組み合わせを、画面バッファー内の指定された数の連続するセルに書き込みます。 |
これらのすべての関数について、行の最後のセルが検出されると、読み取りまたは書き込みが次の行の最初のセルにラップされます。 コンソール画面バッファーの最後の行の末尾が検出されると、書き込み関数はすべての書き込みされていない文字または属性を破棄し、読み取り関数は実際に書き込まれた文字または属性の数を報告します。
次の関数は、画面バッファー内の指定した位置にある四角形の文字セル ブロックから読み取りまたは書き込みを行います。
| 機能 | 説明 |
|---|---|
| ReadConsoleOutput | 指定した画面バッファー セル のブロックからコピー先バッファー内の特定のブロックに文字と色のデータをコピーします。 |
| WriteConsoleOutput | ソース バッファー内の特定のブロックから、指定した画面バッファー セル ブロックに文字データと色データを書き込みます。 |
これらの関数は、画面バッファーとソースバッファーまたはコピー先バッファーを 、( 各セルの文字および色属性データを含む) CHAR_INFO構造体の 2 次元配列として扱います。 この関数は、ソース バッファーまたはコピー先バッファーの幅と高さを文字セル単位で指定し、バッファーへのポインターは 2 次元配列の原点セル (0,0) へのポインターとして扱われます。 この関数では 、SMALL_RECT 構造体を使用してコンソール画面バッファーでアクセスする四角形を指定し、ソースバッファーまたはコピー先バッファーの左上のセルの座標によって、そのバッファー内の対応する四角形の位置が決まります。
これらの関数は、コンソール画面バッファーの境界内に収まるように、指定された画面バッファーの四角形を自動的にクリップします。 たとえば、四角形が右下の座標 (列 100、行 50) を指定し、コンソール画面バッファーの幅が 80 列のみである場合、座標はクリップされて (列 79、行 50) になります。 同様に、この調整された四角形は、ソースバッファーまたはコピー先バッファーの境界内に収まるように再びクリップされます。 読み取りまたは書き込みが行われた実際の四角形の画面バッファー座標が指定されます。 これらの関数を使用する例については、「 文字と属性のブロックの読み取りと書き込み」を参照してください。
この図は、ブロックがコンソール画面バッファーから読み取られ、ブロックがコピー先バッファーにコピーされるときにクリッピングが発生する ReadConsoleOutput 操作を示しています。 関数は、コピーした実際の画面バッファーの四角形を報告します。