Advertisement
Guest User

Untitled

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