Facebook
From Chocolate Wigeon, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 245
  1. // 9 licznik_l licznik_r.cpp: Określa punkt wejścia dla aplikacji.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "9 licznik_l licznik_r.h"
  6. #include <Windows.h>
  7.  
  8. TCHAR Class_Name[] = TEXT("Klasa");
  9.  
  10.  
  11. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  12. {
  13.         static TCHAR bufor[128];
  14.         static int licznik_l = 0, licznik_r = 0;
  15.  
  16.         switch (msg)
  17.         {
  18.         case WM_LBUTTONDOWN:
  19.         {
  20.                                                    licznik_l++;
  21.                                                    wsprintf(bufor, TEXT("Lewy przycisk = %d, prawy przycisk = %d"), licznik_l, licznik_r);
  22.                                                    SetWindowText(hwnd, bufor);
  23.                                                    if (licznik_l != 0 && licznik_r!= 0)
  24.                                                    if (licznik_l == licznik_r)
  25.                                                    {
  26.                                                            if (MessageBox(hwnd, TEXT("Czy chcesz wyzerować liczniki?"), TEXT("Pytanie"), MB_OKCANCEL) == IDOK)
  27.                                                            {
  28.                                                                    licznik_l = 0;
  29.                                                                    licznik_r = 0;
  30.                                                                    SetWindowText(hwnd, TEXT("Lewy przycisk = 0, prawy przycisk = 0"));
  31.                                                            }
  32.                                                    }
  33.                                                    break;
  34.  
  35.         }
  36.         case WM_RBUTTONDOWN:
  37.         {
  38.                                                    licznik_r++;
  39.                                                    wsprintf(bufor, TEXT("Lewy przycisk = %d, prawy przycisk = %d"), licznik_l, licznik_r);
  40.                                                    SetWindowText(hwnd, bufor);
  41.                                                    if (licznik_l != 0 && licznik_r != 0)
  42.                                                    if (licznik_r == licznik_l)
  43.                                                    {
  44.                                                            if (MessageBox(hwnd, TEXT("Czy chcesz wyzerować liczniki?"), TEXT("Pytanie"), MB_OKCANCEL) == IDOK)
  45.                                                            {
  46.                                                                    licznik_l = 0;
  47.                                                                    licznik_r = 0;
  48.                                                                    SetWindowText(hwnd, TEXT("Lewy przycisk = 0, prawy przycisk = 0"));
  49.                                                            }
  50.                                                    }
  51.                                                    break;
  52.  
  53.  
  54.         }
  55.         case WM_CREATE: break;
  56.         case WM_CLOSE:
  57.         {
  58.                                          if (MessageBox(0, TEXT("Czy chcesz wyjść?"), TEXT("Pytanie"), MB_OKCANCEL) == IDOK)
  59.                                                  DestroyWindow(hwnd);
  60.                                          break;
  61.  
  62.         }
  63.         case WM_DESTROY:
  64.         {
  65.                                            PostQuitMessage(0);
  66.                                            break;
  67.  
  68.         }
  69.         default: return DefWindowProc(hwnd, msg, wParam, lParam); break;
  70.  
  71.         }
  72.         return 0;
  73.  
  74. }
  75.  
  76. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR nCmdLine, INT nCmdShow)
  77. {
  78.         MSG Komunikat;
  79.         HWND okno;
  80.  
  81.         WNDCLASSEX wc;
  82.  
  83.         wc.cbSize = sizeof(WNDCLASSEX);
  84.         wc.cbClsExtra = NULL;
  85.         wc.cbWndExtra = NULL;  
  86.         wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  87.         wc.hCursor = LoadCursor(0, IDC_ARROW);
  88.         wc.hIcon = LoadIcon(0, IDI_APPLICATION);
  89.         wc.hIconSm = 0;
  90.         wc.style = 0;
  91.         wc.hInstance = hInst;
  92.         wc.lpfnWndProc = WndProc;
  93.         wc.lpszClassName = Class_Name;
  94.         wc.lpszMenuName = 0;
  95.  
  96.         if (!RegisterClassEx(&wc))
  97.         {
  98.                 MessageBox(okno, TEXT("Rejestracja nie powiodła się"), TEXT("Błąd"), MB_ICONWARNING);
  99.                 return 1;
  100.         }
  101.  
  102.         okno = CreateWindowEx(WS_EX_CLIENTEDGE, Class_Name, TEXT("Lewy przycisk = 0, prawy przycisk = 0"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, NULL, NULL, hInst, NULL);
  103.  
  104.         if (okno == NULL)
  105.         {
  106.                 MessageBox(okno, TEXT("Stworzenie okna nie udane"), TEXT("Błąd"), MB_ICONWARNING);
  107.                 return 1;
  108.         }
  109.  
  110.         ShowWindow(okno, SW_SHOW);
  111.         UpdateWindow(okno);
  112.  
  113.         while (GetMessage(&Komunikat, okno, 0, 0)>0)
  114.         {
  115.                 TranslateMessage(&Komunikat);
  116.                 DispatchMessage(&Komunikat);
  117.         }
  118.  
  119.         return Komunikat.wParam;
  120. }