Переключение между графическим и текстовым режимами в Turbo C - PullRequest
1 голос
/ 25 февраля 2011

Ребята, я пишу простую графическую программу для создания многоугольника n сторон , принимая данные от пользователя. После получения координат вершин я бы попросил пользователя ввести пары вершин, между которыми онхочет ребро.

Чтобы сделать это более интерактивным я подумал, что постепенно начну рисовать многоугольник в графическом режиме, то есть постепенно добавлю края и покажу их пользователю. Теперья бы снова переключился в текстовый режим, чтобы получить дополнительный набор вершин, между которыми он хочет вставить ребра. Но я обнаружил, что при переключении между графическим и текстовым режимом все, что я рисую в графическом режиме, стирается.*

Ребята, это , так или иначе, в компиляторе turbo C , чтобы я мог переключаться между текстовым и графическим режимами и одновременно восстанавливать содержимое графического режима. Должен ли я использовать другой компилятор ??

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

При переключении между режимами видеоадаптер теряет всю сохраненную графику.Обходным путем для этого является использование «холста», растрового изображения в памяти, в котором хранятся пиксели.Вы внесете изменения в это растровое изображение и добавите его в видеоадаптер, чтобы сделать его видимым.Не поддерживается этой древней графической библиотекой, которую вы используете.Изучите функцию winapi CreateCompatibleDC (), которую вы планируете продвигать.

Это вряд ли проблема.Просто повторно визуализируйте графику, когда вы переключаетесь обратно в графический режим.Вам нужно сохранить «модель» многоугольника, чтобы вы могли ее визуализировать.Просто сохраните точки вершин.

1 голос
/ 20 марта 2011

Вы можете использовать функции restorecrtmode (), setmode () и getmode (), доступные в библиотеке TURBO c. Эти функции присутствуют в заголовочном файле graphics.h.

0 голосов
/ 29 мая 2013

Вы можете оставаться в графическом режиме для получения пользовательского ввода, но вам нужно будет создать функцию ввода, которая работает в графическом режиме, читая char за char (getch ()), составляя ваш ввод и обновляя графический экран с помощью символов. набран. Если ваша графическая карта имеет более одной страницы, вы можете использовать «setactivepage» и «setvisualpage» для создания отдельных страниц для ввода данных и графики.

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