没有滚动条的cpp win7控制台

时间:2012-10-09 15:33:09

标签: c++ console scrollbar qbasic

我想从我的控制台中删除滚动条(就像在edit - 命令中一样),因为我想制作类似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或更小,滚动条就在那里。

1 个答案:

答案 0 :(得分:1)

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

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