Некоторые из нас до сих пор помню MS-DOS (пусть это будет пухом или куски ...)
, если вы действительно в MS-DOS, то вы не можете ожидать, что содержание консоль будет изменена в цвета только для определенных областей. Тебе нужно сделать это сами. Проблема в том, что мы ничего о вашем фоне проекта не знаю, так что мы не знаем, что и как представлен ваш материал, оказывается/outputed/... и т.д. занесены
Я предполагаю EGA/VGA BIOS текстовый режим используется поэтому вы можете использовать прямой доступ к VRAM. Поэтому вам нужно установить указатель на адрес B800:0000
и обрабатывать его как массив, где каждый символ на экране имеет 2 BYTE. один атрибут цвета, а другой ASCII код (не уверен, в каком порядке больше) ...
Так уже оказанные вещи просто:
петля через весь экран
обычно 80x25x2
Б
тесты каждый ASCII-альфа числового значения
так ASCII code >= '0'
и code<='9'
для чисел или добавить все материалы, которые вы рассматриваете, как буквенно-цифровые, как code>' '
и code<='9'
.
изменить цвета для выбранных символов
только путем изменения атрибутов байт.
Когда вы положили его вместе для чисел будет выглядеть следующим образом:
char far *scr=(char far*)0x0B0000000;
int x,y,a;
for (a=0,y=0;y<25;y++)
for (x=0;x<80;x++,a+=2)
if ((scr[a+0]>='0')&&((scr[a+0]<='9'))
{
scr[a+1]=7; //attribute with the different color here
}
, если он не работает, чем пытаться своп scr[a+0]
и scr[a+1]
. Если возникло исключение, вы не находитесь в MS-DOS, и у вас нет доступа к VRAM. В этом случае используйте DOS-BOX или драйвер, который позволяет получить доступ к памяти, например dllportio ... Для получения дополнительной информации см некоторые более или менее связанных с QA-х:
Если у вас есть проблемы с обнаружением CTRL+Key
не уверен, что если в сборке функции в TC++ позволяет CTRL
(было слишком давно), вы можете использовать BIOS или даже подключить клавиатуру ISR. См. Вторую ссылку, где ISR для обработчика клавиатуры есть там ... Вы можете перенести его на C++ или google там должно быть много примеров, особенно TP7.0 (который является паскалем, но легко переносится в TC++)
Хороший вопрос. Прошло около 20 лет с тех пор, как я использовал Turbo C++. – user4581301
Получите современный компилятор. –
Вы делаете это так же, как и для Object Pascal, Perl или B. Серьезно, * получите более современный компилятор *. – Bathsheba