C ++ Как я могу использовать escape-коды ANSI с WriteConsoleOutput? - PullRequest
0 голосов
/ 20 февраля 2019

Мой буфер:

CHAR_INFO *ciScreenBuffer = new CHAR_INFO[bufferWidth * bufferHeight];

Как я могу использовать такие коды ANSI, чтобы раскрасить свой выходной символ?

"\x1b[38;2;R;G;Bm""

PS Я использую это

WriteConsoleOutputA(hConsoleOutput, ciScreenBuffer, { (SHORT)bufferWidth, (SHORT)bufferHeight }, { 0, 0 }, &writeRegion);

1 Ответ

0 голосов
/ 20 февраля 2019

WriteConsoleOutput не использует и не анализирует последовательности ANSI.Вы предоставляете информацию о цвете как часть CHAR_INFO данных, которые вы передаете.

Чтобы добавить цвет к вашему выводу, обновите цветной элемент массива ciScreenBuffer при добавлениисимволы, которые вы хотите отобразить.Например, основываясь на примере в одном из ваших комментариев,

ciScreenBuffer[50].Attributes = FOREGROUND_BLUE;
...