コンソール サイズの変更で問題が発生しました。これは私のコードです:
BOOL setConsole(int x, int y)
{
hStdin = GetStdHandle(STD_INPUT_HANDLE);
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
if (hStdin == INVALID_HANDLE_VALUE ||
hStdout == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, TEXT("GetStdHandle"),
TEXT("Console Error"), MB_OK);
return false;
}
SMALL_RECT windowSize = {0, 0, x-1, y-1};
// Change the console window size:
SetConsoleWindowInfo(hStdout, TRUE, &windowSize);
COORD c = { x, y};
//Change the internal buffer size:
SetConsoleScreenBufferSize(hStdout, c);
SetConsoleDisplayMode(hStdout,CONSOLE_FULLSCREEN_MODE, &c);
return true;
}
コンソールを拡大しようとすると、問題なく動作します。1 つのパラメーターが前のパラメーターよりも小さい場合、何も起こりません。なにが問題ですか?
@edit: いくつかのテストの後、一度に 1 つのパラメーターを変更するとサイズ変更 (縮小) が可能であることに気付きました。例 (コンソールが 100x100 であると仮定)
setConsole(90,90); //dosen't work.
setConsole(90,100);
setConsole(90,90); // works perfectly
どうして?!