Advertisement
Guest User

gwiazdka

a guest
Jan 15th, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Windows.h>
  2. #include <stdio.h>
  3. #include <vector>
  4.  
  5. //przechwytuje wszytkie komunikaty
  6. MSG Komunikat;
  7. TCHAR NazwaKlasy[] = TEXT("Jestem se klasa");
  8.  
  9. HWND hwnd;
  10. float gwiazdka = 180;
  11. HDC hdc;
  12. HPEN Pen, Pen_box;
  13. HBRUSH Brush, Brush_box;
  14. POINT pointD[14];
  15. POINT pointM[14];
  16.  
  17. int iterator = 0;
  18. int iterator_2 = 0;
  19. int speed = 0;
  20. int iteratorM = 0;
  21.  
  22.  
  23.  
  24.  
  25. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  26. {
  27.    
  28.     switch (msg)
  29.     {
  30.    
  31.     case WM_CREATE:
  32.     {
  33.         SetTimer(hwnd, 1, 100, NULL);
  34.         break;
  35.     }
  36.     case WM_PAINT:
  37.     {  
  38.         PAINTSTRUCT ps;
  39.         hdc = BeginPaint(hwnd, &ps);
  40.  
  41.         RECT rect;
  42.         GetClientRect(hwnd, &rect);
  43.         Pen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
  44.         Brush = CreateSolidBrush(RGB(0, 255, 0));
  45.  
  46.         SetMapMode(hdc, MM_ISOTROPIC);
  47.         SetWindowExtEx(hdc, 400, 400, NULL);
  48.         SetViewportExtEx(hdc, rect.right, -rect.bottom, NULL);
  49.         SetViewportOrgEx(hdc, rect.right / 2, rect.bottom / 2, NULL);
  50.         iterator = 0;
  51.        
  52.         iterator_2 += speed;
  53.    
  54.         for (int i=0; i < 360; i += 52)
  55.         {
  56.             pointD[iterator].x = gwiazdka * sin((i + iterator_2) * 3.14 / 180);
  57.             pointD[iterator].y = gwiazdka * cos((i + iterator_2) * 3.14 / 180);
  58.             iteratorM = 0;
  59.             for (int i = 0; i < 360; i += 52)
  60.             {
  61.                 pointM[iteratorM].x = pointD[iterator].x + (gwiazdka / 10 * sin((i + (iterator_2 * 2)) * 3.14 / 180));
  62.                 pointM[iteratorM].y = pointD[iterator].y + (gwiazdka / 10 * cos((i + (iterator_2 * 2)) * 3.14 / 180));
  63.                 iteratorM += 2;
  64.             }
  65.             iteratorM = 1;
  66.             for (int i = 26; i < 360; i += 52)
  67.             {
  68.                 pointM[iteratorM].x = pointD[iterator].x + (gwiazdka / 20 * sin((i + (iterator_2 * 2)) * 3.14 / 180));
  69.                 pointM[iteratorM].y = pointD[iterator].y + (gwiazdka / 20 * cos((i + (iterator_2 * 2)) * 3.14 / 180));
  70.                 iteratorM += 2;
  71.             }
  72.             Polygon(hdc, pointM, 14);
  73.             iterator += 2;
  74.         }
  75.         iterator = 1;
  76.         for (int i = 26; i < 360; i += 52)
  77.         {
  78.             pointD[iterator].x = gwiazdka / 2 * sin((i + iterator_2) * 3.14 / 180);
  79.             pointD[iterator].y = gwiazdka / 2 * cos((i + iterator_2) * 3.14 / 180);
  80.             iterator += 2;
  81.         }
  82.         Pen_box = (HPEN)SelectObject(hdc, Pen);
  83.         Brush_box = (HBRUSH)SelectObject(hdc, Brush);
  84.         Polygon(hdc, pointD, 14);
  85.        
  86.         SelectObject(hdc, Pen_box);
  87.         SelectObject(hdc, Brush_box);
  88.         DeleteObject(Pen);
  89.         DeleteObject(Brush);
  90.         DeleteObject(Pen_box);
  91.         DeleteObject(Brush_box);
  92.        
  93.  
  94.  
  95.  
  96.         EndPaint(hwnd, &ps);
  97.         break;
  98.     }
  99.     case WM_TIMER:
  100.     {  
  101.         speed++;
  102.         if (speed == 10)
  103.         {
  104.             speed /= 2;
  105.         }
  106.         InvalidateRect(hwnd, 0, TRUE);
  107.         break;
  108.     }
  109.    
  110.     case WM_CLOSE:
  111.     {
  112.         //if (MessageBox(NULL, TEXT("Serio chcesz zamknac?"), TEXT("Warning"), MB_YESNO) == IDYES)
  113.             DestroyWindow(hwnd);
  114.         break;
  115.     }
  116.     case WM_DESTROY:
  117.     {
  118.         KillTimer(hwnd, 1);
  119.         PostQuitMessage(1);
  120.     }
  121.     break;
  122.  
  123.  
  124.     default:
  125.         return DefWindowProc(hwnd, msg, wParam, lParam);
  126.     }
  127.  
  128.     return 0;
  129. }
  130. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hprevInstance, LPSTR lpCmdLine, int nCmdShow)
  131. {
  132.  
  133.     //tworzenie klasy okno
  134.  
  135.     WNDCLASSEX wc;
  136.  
  137.  
  138.     wc.cbSize = sizeof(WNDCLASSEX);
  139.     wc.style = CS_VREDRAW | CS_HREDRAW;
  140.     wc.lpfnWndProc = WndProc;
  141.     wc.cbClsExtra = 0;
  142.     wc.cbWndExtra = 0;
  143.     wc.hInstance = hInstance;
  144.     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  145.     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  146.     wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 0);
  147.     wc.lpszMenuName = NULL;
  148.     wc.lpszClassName = NazwaKlasy;
  149.     wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  150.     if (!RegisterClassEx(&wc))
  151.     {
  152.         MessageBox(NULL, "Odmowa okna", "ww", MB_ICONEXCLAMATION | MB_OK);
  153.         return 1;
  154.     }
  155.     hwnd = CreateWindowEx(WS_EX_WINDOWEDGE, NazwaKlasy, "Oto Okienko", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 800, NULL, NULL, hInstance, NULL);
  156.     if (hwnd == 0)
  157.     {
  158.         MessageBox(NULL, "Nie działa", "Ojć", MB_ICONEXCLAMATION);
  159.         return 1;
  160.     }
  161.     ShowWindow(hwnd, nCmdShow);
  162.     UpdateWindow(hwnd);
  163.  
  164.  
  165.    
  166.  
  167.     //Petla przechwytujaca kounikaty
  168.     while (GetMessage(&Komunikat, NULL, 0, 0))
  169.     {
  170.         TranslateMessage(&Komunikat);
  171.         DispatchMessage(&Komunikat);
  172.     }
  173.  
  174.     UnregisterClass(NazwaKlasy, hInstance);
  175.     return Komunikat.wParam;
  176.  
  177.  
  178.     while (GetMessage(&Komunikat, NULL, 0, 0))
  179.     {
  180.         TranslateMessage(&Komunikat);
  181.         DispatchMessage(&Komunikat);
  182.     }
  183.  
  184.  
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement