Скрыть полосы прокрутки в старой консоли Windows (до Windows 10 один) - PullRequest
0 голосов
/ 21 марта 2019

У меня проблема со скрытием полос прокрутки в старой консоли 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;
}

1 Ответ

0 голосов
/ 27 марта 2019

Как правило, hWnd окна консоли не гарантированно подходит для всех операций с дескрипторами окна, как, например, задокументировано здесь . Это не «реальное окно», поэтому вы не можете ожидать его поведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...