Windowsになってから、コンソールの文字色変更が面倒になってます。
DOS時代はエスケープシーケンスで容易だったし、Windows前半はANSI.SYSを入れれば使えたのですが、Windows10では駄目らしい。
てなわけで、コンソール出力のカラー化に挑戦してみました。
こんなプログラムになりましたが、とても面倒・・
(;_;)
DOS時代は楽ちんだった。
簡単な方法が有りましたらお知らせ下さい。
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
HANDLE hstdout;
CONSOLE_SCREEN_BUFFER_INFO coninf;
hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hstdout, &coninf); // デフォルトの表示文字の色を保存
puts(""); // 改行
// 文字色設定
SetConsoleTextAttribute(hstdout, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY | 0);
printf("青緑文字/黒"); fflush(stdout);
SetConsoleTextAttribute(hstdout, coninf.wAttributes); // 表示文字の色を元に戻す。
printf(", "); fflush(stdout);
SetConsoleTextAttribute(hstdout, /*白*/ 0x0007 | FOREGROUND_INTENSITY | BACKGROUND_RED);
printf("白文字/赤"); fflush(stdout);
SetConsoleTextAttribute(hstdout, coninf.wAttributes); // 表示文字の色を元に戻す。
printf(", "); fflush(stdout);
SetConsoleTextAttribute(hstdout, 0 | /* BACKGROUND 白 明 */ 0x00F0);
printf("黒文字/白"); fflush(stdout);
SetConsoleTextAttribute(hstdout, coninf.wAttributes); // 表示文字の色を元に戻す。
printf("¥n¥n何かキーを押してください >"); fflush(stdout);
getch(); // キー入力を待つ
puts("");
return 0;
}