Рисование в консоли Win32 на C++?

Что лучший способ состоит в том, чтобы потянуть вещи в Консоли на Победе 32 платформы с помощью C++?

Я знаю, что Вы можете потянуть простые художественные символы использования, но являетесь там способом сделать что-то более сложное как круги или даже побитово отображаете?

6
задан 20 December 2009 в 21:41
поделиться

5 ответов

Нет, вы не можете просто сделать это, потому что консоль Win32 не поддерживает эти методы. Однако вы можете использовать GDI для рисования в окне консоли.

Это отличный пример рисования растрового изображения на консоли путем создания на нем дочернего окна: http://www.daniweb.com/code/snippet216431.html

Здесь рассказывается, как рисовать линии и круги:
http://www.daniweb.com/code/snippet216430.html

На самом деле это не отрисовка в консоли. Это своего рода рисование "поверх" консоли, но оно все равно отлично справляется.

10
ответ дан 8 December 2019 в 03:01
поделиться

Возможно, вы говорите о программах DOS, использующих режим VGA . Быстрый поиск в Google показывает учебник C .

2
ответ дан 8 December 2019 в 03:01
поделиться

Не без использования ASCII art. Во времена DOS это было «довольно» легко сделать, переработав точечные рисунки символов. Это могло быть возможно только в Windows, создав свой собственный шрифт, но я действительно не уверен, что это возможно

0
ответ дан 8 December 2019 в 03:01
поделиться

Как указал Ник Брукс, вы можете использовать вызовы GDI в консольных приложениях, но графика не может отображаться в том же окне, что и ввод-вывод текстовой консоли. Это может не иметь значения, поскольку вы можете рисовать текстовые элементы в GDI.

Упрощенный интерфейс для вызовов GDI в консольных приложениях предоставляется WinBGIm . Это клон Borland DOS BGI API, но с расширениями для обработки окон изменяемого размера, ввода с помощью мыши и 24-битных цветовых моделей. Поскольку он доступен как исходный код, он также служит хорошей демонстрацией использования GDI таким образом.

Можно либо иметь как консоль, так и окно GDI, либо вы можете подавить окно консоли, указав, что приложение является приложением с графическим интерфейсом (параметр -mwindows компоновщик в инструментальной цепочке GNU) - обратите внимание, что указание приложения с графическим интерфейсом действительно только подавляет консоль, это действительно приложение с графическим интерфейсом, только если у него есть цикл сообщений. Наличие консоли хорошо для отладки, поскольку именно туда по умолчанию выводятся stdout и stderr.

2
ответ дан 8 December 2019 в 03:01
поделиться
1--- 2586070-

Возможно, хотя и полностью недокументировано, чтобы создать буфер экрана консоли, который использует HBitMap , который совместно используется между процессом окна консоли и процессом вызова. Это подход, который NTVDM принимает, чтобы отобразить графику после приложения DOS, переключается в графический режим.

Увидеть это.

4
ответ дан 8 December 2019 в 03:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: