Я пытаюсь нарисовать рамку в моем выводе.
Размер моих окон 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. Поэтому я не могу установить высоту окна из свойств окна вручную, что я всегда делал.
Разрешение текстового режима терминала составляет 80 х 24. Ничья до 24 вместо 25, может быть?
И избавиться от ТС как можно скорее. Оформить заказ ncurses после того, как вы избавитесь от TC.
Я думаю, что вы можете продлить ограничение линии 24/25. Командная строка должна быть эль для прокрутки в течение достаточно долгого времени.