每次我运行此代码(在 Win7 上)时,控制台都会在两个方向上缩小 1 个字符。
int wmain( INT argc, WCHAR **argv )
{
CONSOLE_SCREEN_BUFFER_INFOEX csbi;
csbi.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
wprintf(L"Window: %u x %u\n", csbi.srWindow.Right - csbi.srWindow.Left + 1, csbi.srWindow.Bottom - csbi.srWindow.Top + 1);
SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return 0;
}
我怀疑这是预期的行为。有记录吗?在较新版本的 Windows 中是否更好?这是运行几次的剪辑。
p:\test\release> test.exe
窗口:99 x 41
p:\test\release> test.exe
窗口:98 x 40
p:\test\release> test.exe
窗口:97×39
Windows 控制台 API 中长期存在的“无法修复”错误。
您只需要做其他人所做的事情,并在阅读后增加 window.Bottom 和 window.Right 。
GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)
++csbi.srWindowBottom;
++csbi.srWindowRight;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)