запись символа в позицию gotoxy (80, 25) без перемещения курсора на новую строку

Я пытаюсь нарисовать рамку в моем выводе.

Размер моих окон 80х25 (ширина х высота в символах)

Я успешно нарисовал все линии, используя приведенный ниже код. Но запись в самую последнюю точку (80, 25) переводит курсор на следующую строку, которую я не могу обработать.

Мой код как ниже:

#include <iostream.h>
#include <conio.h>

void DrawFrame(int);
void DrawHoriLine(int, int, int, int, int);

void main()
{
clrscr();
DrawFrame(GREEN);
getch();
}

void DrawFrame(int color)
{
DrawHoriLine(2,  1, 78, 205, color);
DrawHoriLine(2,  3, 78, 196, color);
DrawHoriLine(2, 22, 78, 196, color);
DrawHoriLine(2, 24, 78, 205, color);
gotoxy(1, 3);   cprintf("%c", 198);
gotoxy(80, 3);  cprintf("%c", 181);
gotoxy(1, 1);   cprintf("%c", 213);
gotoxy(80, 1);  cprintf("%c", 184);
gotoxy(1, 25);  cprintf("%c", 212);
gotoxy(80, 25); cprintf("%c", 190);  //*** Here is problem
}

void DrawHoriLine(int x, int y, int length, int charCode, int color)
{
gotoxy(x, y);
textcolor(color);
for (int i=0; i<length; i++)
cprintf("%c", charCode);
}

Поскольку 25 — последняя строка, а перемещение курсора на следующую строку делает мой кадр плохо отображаемым. Все ранее нарисованные горизонтальные линии сдвинуты вверх на одну.

Я знаю, что это не необычное поведение.
Но нет ли другого варианта, чтобы избавиться от этого ..? Если нет, то я не смогу использовать последнюю строку в моем кадре.

Я использую Turbo C ++ в Windows 8 x64 OS, используя DosBox. Поэтому я не могу установить высоту окна из свойств окна вручную, что я всегда делал.

-1

Решение

Разрешение текстового режима терминала составляет 80 х 24. Ничья до 24 вместо 25, может быть?

И избавиться от ТС как можно скорее. Оформить заказ ncurses после того, как вы избавитесь от TC.

2

Другие решения

Я думаю, что вы можете продлить ограничение линии 24/25. Командная строка должна быть эль для прокрутки в течение достаточно долгого времени.

0

По вопросам рекламы [email protected]