在旧版Windows控制台(Windows 10之前的版本)中隐藏滚动条

时间:2019-03-20 22:01:55

标签: c++ winapi

在将滚动条隐藏在旧的Windows控制台中同时允许调整控制台的大小时,我遇到了问题。我的代码在新的控制台上工作,但在旧的控制台上工作:

  1. 它可以工作,但是可以防止将控制台窗口调整为更大的尺寸(尝试a)。

  2. 调整窗口大小后,
  3. 滚动条开始出现错误的行为。它们有时被隐藏,有时仅一个被隐藏,有时一个被切成两半(尝试b)。

这是我的代码:

#include "windows.h"

int main()
{
    HANDLE console_handle = GetStdHandle(STD_OUTPUT_HANDLE);

    for (;;)
    {

        // attempt a)
        /*CONSOLE_SCREEN_BUFFER_INFO buffer_info;
        GetConsoleScreenBufferInfo(console_handle, &buffer_info);

        SetConsoleScreenBufferSize(
            console_handle,
            { buffer_info.srWindow.Right - buffer_info.srWindow.Left + 1, buffer_info.srWindow.Bottom - buffer_info.srWindow.Top + 1 }
        );*/


        //attempt b)
        HWND w = GetConsoleWindow();
        ShowScrollBar(w, SB_BOTH, FALSE);
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

通常,不能保证控制台窗口的hWnd适用于所有窗口句柄操作,例如记录在here中。 它不是一个“真实的窗口”,所以您不能指望它的行为。