c++ - 没有滚动条的cpp win7控制台

标签 c++ console scrollbar qbasic

我想从我的控制台中删除滚动条(就像在 edit-command 中一样),因为我想制作一个类似 qbasic 的程序。我知道这里是 a thread但它不适用于 windows 7 32bit。上面写着你只需要使控制台屏幕缓冲区与控制台窗口的大小相同。
这不起作用:

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;

关于c++ - 没有滚动条的cpp win7控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803532/

相关文章:

c++ - 如何用不重要的值填充数组(声明后)?

java - 不使用 ant 从控制台构建 Eclipse 项目

python - python 控制台和 python 脚本之间的不同行为

html:有没有办法在html代码中包含滚动条

jquery 加载函数只获取 div

c++ - 空间中的相交矩形

c++ - 为什么我可以读取 char[2] 但不能读取 char[1]?

c++ - Linux c++ 控制台获取关键状态

javascript - 不滚动时滚动条消失

c++ - 为什么 (*callback)() 有效,而 *callback() 或 *callback 在 C++ 中不起作用