Форум программистов, компьютерный форум CyberForum.ru

Получить цвет фона экрана консольного окна (можно и методами WinAPI) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, является ли целая квадратная матрица порядка n симметричной (относительно главной диагонали) http://www.cyberforum.ru/cpp-beginners/thread637345.html
Помогите пожалуйста, срочно нужно
C++ Транспонировать данную вещественную квадратную матрицу порядка n Помогите срочно нужно, пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread637344.html
Остановка действий C++
Можно ли как нибудь остановить выполнения программы на некоторое время?
C++ Не может найти конструктор для иниц поля класса
Здравствуйте. Помогите с проблемой. Есть класс TCell, определен тип CellArray как массив 30 Х 30 из TCell. Также определен класс TGameSector, который имеет private поле CArr типа CellArray. При компиляции выходит ошибка: cannot find default constructor to initialize member TGameSector::CArr. т.е. просит конструктор массива. Поискал в интернете, и, в частности, здесь, есть похожие проблемы но...
C++ Нужен совет по выделению памяти http://www.cyberforum.ru/cpp-beginners/thread637294.html
Здравствуйте. В проекте частенько нужно выделять память только желательно проверять на bad_alloc. Написал функцию алокатор с проверкой: void* SafeMemoryAlloc(void ** ptr, size_t bytes, size_t size) { try { if ( ptr == NULL ) {
C++ Анти спам ,блокировака чата Не могу придумать как написать код С++ что бы когда человек в чат пишет очень быстро больше 5 сообщений ,то есть флудит срабатывал вот такой код player->GetSession()->m_muteTime = time(0) + 5; и его чат блокировался на 5 минут. Если кто может напишите Код подробнее

Показать сообщение отдельно
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
14.08.2012, 08:33     Получить цвет фона экрана консольного окна (можно и методами WinAPI)
Вот пример старый нашел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <tchar.h>
#include <windows.h>
#include <iostream>
 
 
//
// Тип данных для хранения цвета.
//
typedef unsigned short COLOR;
 
 
//
// Исходные составляющие цвета, используемые для экрана консоли.
//
#define COLOR_BLACK 0x0000
#define COLOR_BLUE  0x0001
#define COLOR_GREEN 0x0002
#define COLOR_RED   0x0004
#define COLOR_HIGH  0x0008
 
 
//
// Маски текстовых атрибутов.
//
#define BACKCOLOR_MASK 0x00F0
#define FORECOLOR_MASK 0x000F
#define OTHERATTR_MASK 0xFF00
 
 
//
// Перечесление цветов, используемых для экрана консоли.
// (Вместо class можно оформить в виде enum).
//
class Color
{
public:
    static COLOR const Black        = COLOR_BLACK;
    static COLOR const Blue         = COLOR_BLUE;
    static COLOR const Green        = COLOR_GREEN;
    static COLOR const Cyan         = COLOR_BLUE  | COLOR_GREEN;
    static COLOR const Red          = COLOR_RED;
    static COLOR const Magenta      = COLOR_BLUE  | COLOR_RED;
    static COLOR const Brawn        = COLOR_GREEN | COLOR_RED;
    static COLOR const Gray         = COLOR_BLUE  | COLOR_GREEN | COLOR_RED;
    static COLOR const DarkGray     = COLOR_HIGH;
    static COLOR const LightBlue    = COLOR_BLUE  | COLOR_HIGH;
    static COLOR const LightGreen   = COLOR_GREEN | COLOR_HIGH;
    static COLOR const LightCyan    = COLOR_BLUE  | COLOR_GREEN | COLOR_HIGH;
    static COLOR const LightRed     = COLOR_RED   | COLOR_HIGH;
    static COLOR const LightMagenta = COLOR_BLUE  | COLOR_RED   | COLOR_HIGH;
    static COLOR const Yellow       = COLOR_GREEN | COLOR_RED   | COLOR_HIGH;
    static COLOR const White        = COLOR_BLUE  | COLOR_GREEN | COLOR_RED  | COLOR_HIGH;
};
 
 
//
// Получение цвета фона из атрибутов текста.
//
inline WORD GetConsoleBackColor(WORD attr)
{
    return ((attr & BACKCOLOR_MASK) >> 4);
}
 
//
// Получение цвета символа из атрибутов текста.
//
inline WORD GetConsoleForeColor(WORD attr)
{
    return (attr & FORECOLOR_MASK);
}
 
//
// Получение прочих атрибутов текста.
//
inline WORD GetConsoleOtherAttr(WORD attr)
{
    return ((attr & OTHERATTR_MASK) >> 8);
}
 
//
// Объединение цвета символа, цвета фона и прочих атрибутов текста.
//
inline WORD MergeConsoleAttr(WORD fore, WORD back, WORD attr)
{
    return (fore | (back << 4) | (attr << 8));
}
 
 
//
// Вывод названия цвета.
//
void OutputColorName(COLOR color)
{
    using std::cout;
 
    switch (color)
    {
    case Color::Black:        cout << "Black";         break;
    case Color::Blue:         cout << "Blue";          break;
    case Color::Green:        cout << "Green";         break;
    case Color::Cyan:         cout << "Cyan";          break;
    case Color::Red:          cout << "Red";           break;
    case Color::Magenta:      cout << "Magenta";       break;
    case Color::Brawn:        cout << "Brawn";         break;
    case Color::Gray:         cout << "Gray";          break;
    case Color::DarkGray:     cout << "Dark Gray";     break;
    case Color::LightBlue:    cout << "Light Blue";    break;
    case Color::LightGreen:   cout << "Light Green";   break;
    case Color::LightCyan:    cout << "Light Cyan";    break;
    case Color::LightRed:     cout << "Light Red";     break;
    case Color::LightMagenta: cout << "Light Magenta"; break;
    case Color::Yellow:       cout << "Yellow";        break;
    case Color::White:        cout << "White";         break;
    }
}
 
 
int _tmain()
{
    using namespace std;
 
    // Описатель стандартного устройства вывода.
    HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if (stdOut == INVALID_HANDLE_VALUE)
        return GetLastError();
 
    // Сведения об экранном буфере стандартного устройства вывода.
    CONSOLE_SCREEN_BUFFER_INFO scrBufInfo = {{0}, {0}, 0, {0}, {0}};
    if (GetConsoleScreenBufferInfo(stdOut, &scrBufInfo) == FALSE)
        return GetLastError();
 
    // Текущий цвет фона.
    COLOR backColor = GetConsoleBackColor(scrBufInfo.wAttributes);
    cout << "Back color: "; OutputColorName(backColor); cout << endl;
 
    // Текущий цвет текста.
    COLOR foreColor = GetConsoleForeColor(scrBufInfo.wAttributes);
    cout << "Fore color: "; OutputColorName(foreColor); cout << endl;
 
    system("PAUSE");
 
    return 0;
}
 
Текущее время: 02:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru