Buddhi Chaturanga Ответов: 3

Как установить текст консоли C/C++ жирным шрифтом и курсивом в windows?


Привет,
Я разрабатываю приложение Visual C++ в консольном режиме windows, я хочу установить свой консольный текст в полужирную и Курсивную форму. Я изменил цвет текста консоли и цвет фона с помощью функции SetConsoleTextAttribute и системных функций("COLOR XX"). Но нет никакой функции Win32 API для изменения текстового режима на полужирный, курсивный или Обводочный. Пожалуйста, упомяните какую-либо функцию или механизм для ее достижения в пределах границ программирования C/C++ в среде Windows? Спасибо.

Что я уже пробовал:

Я боролся с функцией SetConsoleTextAttribute WinAPI

3 Ответов

Рейтинг:
27

Jochen Arndt

Для смелых вы можете установить FOREGROUND_INTENSITY с SetConsoleTextAttribute.
Но там нет поддержки курсива и страйка (кроме изменения консольного шрифта, который влияет на все символы).

В старые времена MS-DOS это было реализовано с помощью escape-последовательностей ANSI. Теперь они вернулись с Windows 10.

Если вы используете настоящую Windows 10, см. Последовательности Виртуальных Терминалов Консоли (Windows)[^].

Но к сожалению курсив (ESC[3m) и нанести удар насквозь (ESC[9m) не поддерживаются.

Если вам действительно нужны эти режимы, вы, вероятно, должны использовать дополнительное программное обеспечение, например GitHub - adoxa/ansicon: обработка escape-последовательностей ANSI для консольных программ Windows.[^] после проверки, поддерживает ли он курсив и зачеркивание (я не проверял его для вышеизложенного).


Buddhi Chaturanga

Спасибо за прекрасный ответ :D

Рейтинг:
2

Member 13590663

Для жирного шрифта вы можете использовать эту функцию
#include <iostream>

std::ostream& bold_on(std::ostream& os)
{
возврат os << "\e[1m";
}

std::ostream& bold_off(std::ostream& os)
{
возврат os << "\e[0m";
}


тап_п()
{
с std::соиь <&ЛТ; bold_on &ЛТ;&ЛТ; "полужирный" &ЛТ;&ЛТ; bold_off &ЛТ;&ЛТ; "нежирный" &ЛТ;&ЛТ; функция std::епси;
}


Рейтинг:
0

Dave Kreskowiak

Ты не можешь. Консоль не поддерживает "полужирный" или "курсивный" текст.


Buddhi Chaturanga

Спасибо за ответ :D