隐藏旧Windows控制台中的滚动条(pre windows 10 one)

问题描述 投票:0回答:1

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

  1. 它可以工作,但可以防止控制台窗口调整为更大的尺寸(尝试a)。
  2. 窗口大小调整后,滚动条开始表现不正常。它们有时是隐藏的,有时只隐藏一个,有时一个被切成两半(尝试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;
}
c++ winapi
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.