Главная » Статьи » IT |
цветной вывод в консоль
Очень просто это можно делать, а выглядит нагляднее:
#pragma once #ifdef WIN32 #include <windows.h> #include <stdexcept> #pragma warning(push) #pragma warning(disable : 4290) #define KSL_CCOL_WHITE 0x07 #define KSL_CCOL_RED 0x0C #define KSL_CCOL_GREEN 0x0A #define KSL_CCOL_BLUE 0x01 #define KSL_CCOL_BLUESKY 0x0B #define KSL_CCOL_PINK 0x0D #define KSL_CCOL_YELLOW 0x0E #define KSL_CCOL_GROW 0x08 /** \brief Установить цвет вывода текста консоли. <br> Старший хекс - цвет фона, младший - цвет текста. \code ЦВЕТА: 0x02 - зелёный 0x03 - голубой 0x04 - красный 0x05 - розовый 0x06 - жёлтый 0x09 - голубой FOREGROUND_BLUE 0x0001 // text color contains blue. FOREGROUND_GREEN 0x0002 // text color contains green. FOREGROUND_RED 0x0004 // text color contains red. FOREGROUND_INTENSITY 0x0008 // text color is intensified. BACKGROUND_BLUE 0x0010 // background color contains blue. BACKGROUND_GREEN 0x0020 // background color contains green. BACKGROUND_RED 0x0040 // background color contains red. BACKGROUND_INTENSITY 0x0080 // background color is intensified. \endcode */ inline void SetConsoleColor(BYTE color = 0x07) throw (std::runtime_error) { HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE ); if ( hStdout == INVALID_HANDLE_VALUE ) { throw std::runtime_error(" Call GetStdHandle failed "); } WORD attr = FOREGROUND_INTENSITY | ( (WORD)color) ;// FOREGROUND_RED|FOREGROUND_INTENSITY if (! SetConsoleTextAttribute(hStdout, attr ) ) { throw std::runtime_error(" Call SetConsoleTextAttribute failed "); } } inline void SetConsoleColorW(WORD color = 0x0007) throw (std::runtime_error) { HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE ); if ( hStdout == INVALID_HANDLE_VALUE ) { throw std::runtime_error(" Call GetStdHandle failed "); } if (! SetConsoleTextAttribute(hStdout, color ) ) { throw std::runtime_error(" Call SetConsoleTextAttribute failed "); } } inline void SetConsoleColorWhite() throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_WHITE); } inline void SetConsoleColorRed () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_RED); } inline void SetConsoleColorGreen() throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_GREEN); } inline void SetConsoleColorBlue () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_BLUE); } inline void SetConsoleColorGlow () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_GROW); } inline void SetConsoleColorPink () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_PINK); } inline void SetConsoleColorYellow() throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_YELLOW); } #else // not windows #error no code for other platforms #endif #pragma warning(pop) | |
Просмотров: 412 | Комментарии: 1 | | |
Всего комментариев: 0 | |