C言語コンソールウィンドウグラフィックインタフェースプログラミング(二):ウィンドウバッファの設定


以下に、コンソールウィンドウ操作用のAPI関数をいくつか紹介します.
//         
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でコンパイルされている.