没有滚动条的 CPP Win7 控制台

cpp win7 console without scrollbars

本文关键字:Win7 控制台 CPP 滚动条      更新时间:2023-10-16

我想从控制台中删除滚动条(如在edit -command中),因为我想制作一个类似qbasic的程序。我知道这是一个线程,但它在 Windows 7 32 位中对我不起作用。有文字记载,您只需使控制台屏幕缓冲区与控制台窗口的大小相同。
这不起作用:

HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hstdout, &csbi);
csbi.dwSize.X = csbi.srWindow.Right;
csbi.dwSize.Y = csbi.srWindow.Bottom;
SetConsoleScreenBufferSize(hstdout, csbi.dwSize);

即使我将csbi.dwSize.XY设置为 10 或更小,滚动条也在那里。

问题是srWindow中包含的大小信息是针对屏幕缓冲区而不是实际窗口的。您希望使用 dwMaximumWindowSize 它以列和行为单位指定窗口的大小。

csbi.dwSize.X = csbi.dwMaximumWindowSize.X;
csbi.dwSize.Y = csbi.dwMaximumWindowSize.Y;