Как в консольной программе выводить цветные надписи и менять палитру
|
#include <windows.h>
void main() { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SMALL_RECT srct; CHAR_INFO chiBuffer[160]; COORD coord1, coord2; char ddd[666]; CharToOem("2:5095/38 - злобный ламеpюга", ddd); DWORD cWritten; coord1.Y = 0; coord1.X = 0; hStdout = GetStdHandle(STD_OUTPUT_HANDLE); WriteConsoleOutputCharacter(hStdout, ddd, lstrlen(ddd), coord1, &cWritten); for (int i = 0; i < lstrlen(ddd); i++) { WORD wColors = 1 + i * 3; coord1.X = i; WriteConsoleOutputAttribute(hStdout, &wColors, 1, coord1, &cWritten); } srct.Top = 0; srct.Left = 0; srct.Bottom = 1; srct.Right = 79; coord1.Y = 0; coord1.X = 0; coord2.Y = 1; coord2.X = 80; ReadConsoleOutput(hStdout, chiBuffer, coord2, coord1, &srct); for (i = 0; i < 50; i++) { srct.Left = (SHORT)((double)(79 - lstrlen(ddd)) * rand() / RAND_MAX); srct.Top = (SHORT)((double)25 * rand() / RAND_MAX); srct.Bottom = srct.Top + 1; WriteConsoleOutput(hStdout, chiBuffer, coord2, coord1, &srct); } Sleep(10000); } } return TRUE; } |