Я пытаюсь изменить размер консоли с помощью WinApi, я преуспел в изменении размера окна и т. Д., Но когда я печатаю на консоли, я не получаю всю информацию, напечатанную на консоли окно, и я не могу понять, почему это происходит? Когда я удаляю код изменения размера, все работает нормально. Я думаю, проблема связана с тем, что размер консольного буфера мал. SetConsoleSize (int, int) называется первым в основном.Проблемы с консольным буфером при изменении размера консоли (WinAPI)
#include <iostream>
#include <stdexcept>
#include <windows.h>
static void SetConsoleSize(int x, int y) {
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTitle("Title!");
COORD coordinates;
coordinates.X = x;
coordinates.Y = y;
SMALL_RECT windowRect;
windowRect.Top = 0;
windowRect.Left = 0;
windowRect.Bottom = x - 1;
windowRect.Right = y - 1;
// Adjust buffer size:
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
if (!SetConsoleScreenBufferSize(handle, coordinates))
throw std::runtime_error("Unable to resize screen buffer.");
// display as a maximized window
ShowWindow(GetConsoleWindow(), SW_MAXIMIZE);
}
Трудно точно знать, из вашего описания какова ваша проблема. Возможно, добавьте скриншот, показывающий, что вы видите и чего ожидаете. –