1、设置屏幕缓冲区大小API:
BOOL SetConsoleScreenBufferSize(
HANDLE hConsoleOutput,
COORD dwSize
);
2、设置窗口大小API:
BOOL SetConsoleWindowInfo(
HANDLE hConsoleOutput,
BOOL bAbsolute,
const SMALL_RECT* lpConsoleWindow
);
3、实例:
HANDLE g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE); // 控制台窗口句柄
COORD bufferSize = {0};
SMALL_RECT windowSize = {0};
bufferSize.X = 80; // 默认
bufferSize.Y = 25; // 默认
windowSize.Right = 80; // 默认
windowSize.Bottom = 25; // 默认
::SetConsoleScreenBufferSize(g_hStdout, bufferSize);
::SetConsoleWindowInfo(g_hStdout, TRUE, &windowSize);
注意:SetConsoleScreenBufferSize最好在SetConsoleWindowInfo前面,否则如果设置窗口的大小大于屏幕缓冲区大小的话,设置窗口大小失败。
4、COORD 的X和Y成员都是SHORT,SMALL_RECT的LEFT、RIGHT、TOP、BOTTOM成员也是SHORT。理论上他们的设置数值范围是0-32767,实际上并非如此。X的范围是80到32766,Y的范围是25到32766,不在这个范围的话设置就失败了。RIGHT和BOTTOM的设置范围分别是从2到X-1,Y-1,当X、Y是25、80时,RIGHT和BOTTOM可以设置成跟XY一样大小,否则任何时候只能设置为比XY小1,不然就设置失败了。