C言語コンソールウィンドウグラフィックインタフェースプログラミング(二):ウィンドウバッファの設定
1583 ワード
以下に、コンソールウィンドウ操作用のAPI関数をいくつか紹介します.
次のサンプル・プログラムでは、このような関数の使用方法を説明します.
ここで、SetConsoleScreenBufferSize関数は、文字列と動作単位で新しいコンソールスクリーンバッファのサイズを指定します.指定した幅と高さは、コンソールスクリーンバッファウィンドウの幅と高さより小さくすることはできません.指定したサイズも、システムが許容する最小サイズより小さくすることはできません.これは、コンソールの現在のフォントサイズ(ユーザーによって選択されている)によって異なります.
また、GetConsoleTitle関数の具体的な実装では、マクロがUNICodeを定義しているかどうか(ファイル符号化形式に関係する)について説明しているので、一部のIDEではこの例のコンパイルが通らない可能性があり、個別のコンパイラまたはIDEに置き換えればよい.この例はCode::Blocks 13.12でコンパイルされている.
//
GetConsoleScreenBufferInfo();
//
GetConsoleTitle();
//
SetConsoleScreenBufferSize();
//
SetConsoleTitle();
//
SetConsoleWindowInfo();
次のサンプル・プログラムでは、このような関数の使用方法を説明します.
#include
#include
#include
#include
#define N 255
int main()
{
HANDLE handle_out; //
CONSOLE_SCREEN_BUFFER_INFO scbi; //
COORD size = {80, 25}; //
char strtitle[N];
handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //
GetConsoleScreenBufferInfo(handle_out, &scbi); //
GetConsoleTitle(strtitle, N); //
printf(" :%s
", strtitle);
_getch();
SetConsoleTitle(" "); // “ ”
GetConsoleTitle(strtitle, N); //
printf(" :%s
", strtitle);
_getch();
SetConsoleScreenBufferSize(handle_out, size); //
_getch();
SMALL_RECT rc = {0, 0, 80-1, 25-1}; //
SetConsoleWindowInfo(handle_out, 1, &rc);
CloseHandle(handle_out); //
return 0;
}
ここで、SetConsoleScreenBufferSize関数は、文字列と動作単位で新しいコンソールスクリーンバッファのサイズを指定します.指定した幅と高さは、コンソールスクリーンバッファウィンドウの幅と高さより小さくすることはできません.指定したサイズも、システムが許容する最小サイズより小さくすることはできません.これは、コンソールの現在のフォントサイズ(ユーザーによって選択されている)によって異なります.
また、GetConsoleTitle関数の具体的な実装では、マクロがUNICodeを定義しているかどうか(ファイル符号化形式に関係する)について説明しているので、一部のIDEではこの例のコンパイルが通らない可能性があり、個別のコンパイラまたはIDEに置き換えればよい.この例はCode::Blocks 13.12でコンパイルされている.