Advertisement
Guest User

licznik

a guest
Jan 15th, 2019
220
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 <string.h>
  4.  
  5. const char* NazwaKlasy = TEXT("Klasa Okienka");
  6. MSG Komunikat;
  7.  
  8. int right_click = 0;
  9. int left_click = 0;
  10. // OBSŁUGA ZDARZEŃ
  11. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  12. {
  13.  
  14.    
  15.     switch (msg)
  16.     {
  17.     case WM_LBUTTONDOWN:
  18.     {
  19.         left_click++;
  20.         char zdanie[255];
  21.         wsprintf(zdanie, "Ilosc klikww lewym: %d, oraz prawym: %d", left_click, right_click);
  22.         SetWindowText(hwnd, zdanie);
  23.         if (left_click == right_click)
  24.         {
  25.             if (MessageBox(NULL, TEXT("Chcesz zresetowac licznik?"), TEXT("Warning"), MB_YESNO) == IDYES)
  26.             {
  27.                 left_click = 0;
  28.                 right_click = 0;
  29.                 wsprintf(zdanie, "Ilosc klikow lewym: %d, oraz prawym: %d", left_click, right_click);
  30.                 SetWindowText(hwnd, zdanie);
  31.             }
  32.             return 0;
  33.         }
  34.  
  35.  
  36.     }
  37.     break;
  38.     case WM_RBUTTONDOWN:
  39.     {
  40.         right_click++;
  41.         char zdanie[255];
  42.         wsprintf(zdanie, "Ilosc klikow lewym: %d, oraz prawym: %d", left_click, right_click);
  43.         SetWindowText(hwnd, zdanie);
  44.         if (left_click == right_click)
  45.         {
  46.             if (MessageBox(NULL, TEXT("Chcesz zresetowac licznik?"), TEXT("Warning"), MB_YESNO) == IDYES)
  47.             {
  48.                 left_click = 0;
  49.                 right_click = 0;
  50.                 wsprintf(zdanie, "Ilosc klikow lewym: %d, oraz prawym: %d", left_click, right_click);
  51.                 SetWindowText(hwnd, zdanie);
  52.             }
  53.             return 0;
  54.         }
  55.  
  56.     }
  57.     break;
  58.     case WM_DESTROY:
  59.         PostQuitMessage(0);
  60.         break;
  61.     default:
  62.         return DefWindowProc(hwnd, msg, wParam, lParam);
  63.     }
  64.  
  65.     return 0;
  66. }
  67.  
  68. int WINAPI WinMain(HINSTANCE hInstance,
  69.     HINSTANCE hPrevInstance,
  70.     LPSTR lpCmdLine,
  71.     int nCmdShow)
  72. {
  73.  
  74.  
  75.     // WYPEŁNIANIE STRUKTURY
  76.     WNDCLASSEX wc;
  77.  
  78.     wc.cbSize = sizeof(WNDCLASSEX);
  79.     wc.style = CS_VREDRAW | CS_HREDRAW;  // Dzięki temu rysuje się jeszcze raz
  80.     wc.lpfnWndProc = WndProc;
  81.     wc.cbClsExtra = 0;
  82.     wc.cbWndExtra = 0;
  83.     wc.hInstance = hInstance;
  84.     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  85.     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  86.     wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  87.     wc.lpszMenuName = NULL;
  88.     wc.lpszClassName = NazwaKlasy;
  89.     wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  90.  
  91.  
  92.     // REJESTROWANIE KLASY OKNA
  93.     if (!RegisterClassEx(&wc))
  94.     {
  95.         MessageBox(NULL, TEXT("Nie przeszło rejestracji"), TEXT("..."),
  96.             MB_ICONEXCLAMATION | MB_OK);
  97.         return 1;
  98.     }
  99.  
  100.  
  101.     // TWORZENIE OKNA
  102.     HWND hwnd;
  103.  
  104.     hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, NazwaKlasy, TEXT("Oto okienko"), WS_OVERLAPPEDWINDOW,
  105.         CW_USEDEFAULT, CW_USEDEFAULT, 450, 600, NULL, NULL, hInstance, NULL);
  106.  
  107.     if (hwnd == NULL)
  108.     {
  109.         MessageBox(NULL, TEXT("Ni ma okna"), TEXT("..."), MB_ICONEXCLAMATION);
  110.         return 1;
  111.     }
  112.  
  113.     ShowWindow(hwnd, nCmdShow); // Pokaż okienko...
  114.     UpdateWindow(hwnd);
  115.  
  116.     // Pętla komunikatów
  117.     while (GetMessage(&Komunikat, NULL, 0, 0))
  118.     {
  119.         TranslateMessage(&Komunikat);
  120.         DispatchMessage(&Komunikat);
  121.     }
  122.  
  123.     return Komunikat.wParam;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement