PhotoShaman

Рисовалка и светомузыка

Dec 7th, 2016
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <windows.h>
  4. #include <iomanip>
  5. #include <VersionHelpers.h>
  6.  
  7. using namespace std;
  8.  
  9. static void SetCursorPosition(int x, int y)
  10. {
  11.     COORD coord;
  12.     coord.X = x;
  13.     coord.Y = y;
  14.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  15. }
  16. enum ConsoleColor
  17. {
  18.     Black = 0,
  19.     Blue = 1,
  20.     Green = 2,
  21.     Cyan = 3,
  22.     Red = 4,
  23.     Magenta = 5,
  24.     Brown = 6,
  25.     LightGray = 7,
  26.     DarkGray = 8,
  27.     LightBlue = 9,
  28.     LightGreen = 10,
  29.     LightCyan = 11,
  30.     LightRed = 12,
  31.     LightMagenta = 13,
  32.     Yellow = 14,
  33.     White = 15
  34. };
  35. static void SetColor(int text, int background) // устанавливает цвет текста и фона в консоли
  36. {
  37.     HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  38.     SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
  39. }
  40. static void SetColor(int text, ConsoleColor/*int*/ background) // устанавливает цвет текста и фона в консоли
  41. {
  42.     HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  43.     SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
  44. }
  45. HWND GetConsoleHwnd()
  46. {
  47. #define MY_BUFSIZE 1024
  48.     HWND hwndFound;
  49.     char pszNewWindowTitle[MY_BUFSIZE];
  50.     char pszOldWindowTitle[MY_BUFSIZE];
  51.     GetConsoleTitle((LPWSTR)pszOldWindowTitle, MY_BUFSIZE);
  52.     SetConsoleTitle((LPWSTR)pszNewWindowTitle);
  53.     Sleep(1);
  54.     hwndFound = FindWindow(NULL, (LPWSTR)pszNewWindowTitle);
  55.     SetConsoleTitle((LPWSTR)pszOldWindowTitle);
  56.     return(hwndFound);
  57. }
  58. static void MoveCursor()
  59. {
  60.     SetColor(15, 1);
  61.     int xPos, yPos;
  62.     RECT r;
  63.     POINT p;
  64.     HWND wh = GetConsoleHwnd();
  65.     COORD c = { 1,1 };
  66.     while (true)
  67.     {
  68.         //GetWindowRect(wh, &r);
  69.         //GetCursorPos(&p);
  70.         //if (IsWindows8OrGreater()) yPos = (p.y - r.top - 30) / 16; //Координаты Y для вин8-10
  71.         //else yPos = (p.y - r.top - 30) / 12; //Координаты Y для вин7
  72.         //xPos = (p.x - r.left - 9) / 8; //Координаты X для вин7 и вин10
  73.  
  74.         //SetCursorPosition(xPos, yPos);
  75.  
  76.         //if (GetAsyncKeyState(VK_LBUTTON)) cout << ' ';
  77.         //if (GetAsyncKeyState(0x51)) SetColor(15, 0);
  78.         //if (GetAsyncKeyState(0x57)) SetColor(15, 1);
  79.         //if (GetAsyncKeyState(0x45)) SetColor(15, 2);
  80.         //if (GetAsyncKeyState(0x52)) SetColor(15, 3);
  81.         //if (GetAsyncKeyState(0x54)) SetColor(15, 4);
  82.         //if (GetAsyncKeyState(0x59)) SetColor(15, 5);
  83.         //if (GetAsyncKeyState(0x55)) SetColor(15, 6);
  84.         //if (GetAsyncKeyState(0x49)) SetColor(15, 7);
  85.         //if (GetAsyncKeyState(0x41)) SetColor(15, 8);
  86.         //if (GetAsyncKeyState(0x53)) SetColor(15, 9);
  87.         //if (GetAsyncKeyState(0x44)) SetColor(15, 10);
  88.         //if (GetAsyncKeyState(0x46)) SetColor(15, 11);
  89.         //if (GetAsyncKeyState(0x47)) SetColor(15, 12);
  90.         //if (GetAsyncKeyState(0x48)) SetColor(15, 13);
  91.         //if (GetAsyncKeyState(0x4A)) SetColor(15, 14);
  92.         //if (GetAsyncKeyState(0x4B)) SetColor(15, 15);
  93.         //if (GetAsyncKeyState(0x5A)) system("cls");
  94.         for (int i = 0; i < 16; i++)
  95.         {
  96.             SetColor(15, i);
  97.             system("cls");
  98.         }
  99.     }
  100.  
  101. }
  102. void main()
  103. {
  104.     setlocale(LC_ALL, "Russian");
  105.     system("mode con cols=160 lines=60");
  106.     system("title Рисовалка");
  107.     while (true) MoveCursor();
  108. }
Advertisement
Add Comment
Please, Sign In to add comment