Короче говоря: я только что взял C # около недели назад. Большая часть моих знаний в области программирования приходит из Java. Я хочу попробовать свои силы в создании текстовой приключенческой игры (да, я знаю, что могу использовать Unity, но я хочу сделать это с нуля), и часть настроек - получить полноэкранное окно консоли без отвлекающих факторов.
Я копался в StackOverflow и до сих пор собрал это вместе:
[DllImport("kernel32.dll")]
private static extern IntPtr GetStdHandle(int handle);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool SetConsoleDisplayMode(IntPtr ConsoleOutput, uint Flags, out COORD NewScreenBufferDimensions);
[StructLayout(LayoutKind.Sequential)]
public struct COORD
{
public short X;
public short Y;
public COORD(short X, short Y)
{
this.X = X;
this.Y = Y;
}
}
Наряду с этим битом в методе Main:
IntPtr hConsole = GetStdHandle(-11);
SetConsoleDisplayMode(hConsole, 1, out COORD b1);
Console.ReadLine();
Итак, мне удалось войти в полноэкранный режим, но проблема в том, что полоса прокрутки все еще есть.
Я приложил все усилия, чтобы точно понять, как это работает и как будет удалена полоса прокрутки. В настоящее время я понимаю, что экранный буфер Консоли необходимо изменить в соответствии с размером экрана, чтобы полоса прокрутки могла исчезнуть.
Из кода, который мне удалось собрать, кажется, что буфер уже воспроизводится для перехода в полноэкранный режим. Похоже, что метод SetConsoleDisplayMode делает это.
Итак, мой вопрос, как мне добавить удаление полосы прокрутки к этому коду? Я думаю, что это как-то связано со структурой 'COORD', но, честно говоря, я совершенно не в своем духе здесь с новым языком и новыми концепциями (например, структурами), любая помощь будет оценена!