C ++如何删除垂直滚动条?

时间:2017-03-03 12:42:10

标签: c++ winapi

我正在尝试创建一个有趣的程序,它显示随机数,但我需要删除滚动条,使其看起来更有说服力。我设法使程序全屏,但我无法删除垂直滚动条。 Screenshot

代码:

#include <iostream>
#include <Windows.h>
using namespace std;

int main() {
    SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE), CONSOLE_FULLSCREEN_MODE, 0);
    int output;
    bool done = false;
    system("color a");
    while (!done) {
        output = 1 + (rand() % (int)(1000 - 1 + 1));
        cout << output;
    }
}

1 个答案:

答案 0 :(得分:0)

有很多方法,其中一种方法是操纵控制台内部缓冲区的大小,使其具有相同的窗口大小,然后使用ShowScrollBar函数删除滚动条。

#include <iostream>
#include <Windows.h>
#include <WinUser.h>

using namespace std;

int main() {
    SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE), CONSOLE_FULLSCREEN_MODE, 0);

    HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(hstdout, &csbi);

    csbi.dwSize.X = csbi.dwMaximumWindowSize.X;
    csbi.dwSize.Y = csbi.dwMaximumWindowSize.Y;
    SetConsoleScreenBufferSize(hstdout, csbi.dwSize);

    HWND x = GetConsoleWindow();
    ShowScrollBar(x, SB_BOTH, FALSE);

    int output;
    bool done = false;
    system("color a");

    while (!done) {
        output = 1 + (rand() % (int)(1000 - 1 + 1));
        cout << output;

    }
}

另一种方法是依赖conio.h或其他实现用户界面功能的C / C ++头/库。