Добавление пользовательских элементов управления в окно консоли

0

Можно ли добавить пользовательские элементы управления в окно консоли? Вы можете использовать GetConsoleWindow() чтобы получить дескриптор окна, а затем добавить свои собственные пункты меню или использовать все его события. Однако я не могу найти примеров людей, добавляющих дополнительные элементы управления.

Я разрабатываю небольшое, высокопроизводительное последовательное приложение. Это консольное приложение - RichTextBox работает слишком медленно и имеет проблемы, которые делают его непригодным для эмуляции терминала VT100.

Я хочу добавить немного графики, чтобы показать состояние последовательных линий управления (RTS/CTS/DTR/RI и т.д.) И, возможно, кнопку включения/выключения захвата. В идеале я хотел бы добавить их в заголовок окна. Растровые изображения - все, что требуется.

  • 0
    Как насчет отображения состояния контрольных линий в системном трее.
  • 0
    Вы пробовали использовать quickwin? MS больше не распространяет его, но все равно поставляется с компилятором Intel Fortran.
Показать ещё 1 комментарий
Теги:
console

1 ответ

2

После многих исследований я обнаружил, что это нелегко или даже возможно на самом деле.

Вы можете добавлять элементы управления в окно с помощью CreateWindow(), но, конечно, только в области клиента, которая полностью обрабатывается текстовым полем консоли. Тем не менее, вы можете, по крайней мере, создать плавающие элементы управления таким образом, которые наведите курсор на текст, чтобы предоставить информацию о состоянии и т.д.

Вы можете поместить элементы управления в границы окна, но только с некоторыми хаками в XP или с новым API, который был представлен с Vista. Проблема с этим API заключается в том, что он требует, чтобы вы нарисовали свой собственный значок программы и текст заголовка, а консольное окно, похоже, не справляется с этим очень хорошо.

Вы не можете добавлять свои собственные пункты меню, потому что окно консоли не передает сообщения.

В конце я использовал функциональные клавиши для всего и дал индикацию состояния, изменив значок окна консоли.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню