Advertisement
Mihao

Stoper

Nov 30th, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.95 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include "stdio.h"
  4. #include <ctime>
  5.  
  6. #define ID_START 501
  7. #define ID_STOP 502
  8. #define ID_ZERUJ 503
  9.  
  10. TCHAR Class_Name[] = TEXT("OKNO_TEST");
  11. MSG Komunikat;
  12. int zmienna = 0;
  13. char ilosc[128];
  14. HINSTANCE *hInst;
  15. HWND okno1, okno2;
  16.  
  17. bool start = false;                 // stan timera wlaczony lub wylaczony
  18. bool miedzyczas = false;
  19. int odlicz =0;
  20. HWND pole, p_start, p_stop, p_zeruj;        // uchwyty dla przycisków i kontrolek
  21.  
  22.  WORD ID_TIMER = 1;                 // deklaracja poczatkowa timera
  23.  
  24. int s = 0;                          // sekundy minuty godziny
  25. int  m = 0;
  26. int  g = 0;
  27.  
  28. WCHAR wyswietl[32];
  29.  
  30.  void DodajCzas() {
  31.      
  32.      
  33.      if (s < 59)
  34.          s++;
  35.      else
  36.      {
  37.          s = 0;
  38.          m++;
  39.      }
  40.  
  41.      if (m > 59)
  42.      {
  43.         m = 0;
  44.         g++;
  45.      }
  46.      
  47.      wsprintf(wyswietl, TEXT("%2.2d:%2.2d:%2.2d"),g,m, s);
  48.      SetWindowText(pole,wyswietl);
  49.  }
  50.  
  51. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  52. {
  53.  
  54.  
  55.     switch (msg) {
  56.  
  57.     case WM_CREATE:
  58.         if (SetTimer(hwnd, ID_TIMER, 10, NULL) == 0)
  59.             MessageBox(hwnd, TEXT("Nie można utworzyć timera!"), TEXT("Kurde"), MB_ICONSTOP);
  60.         break;
  61.  
  62.     case WM_TIMER:
  63.  
  64.         if (start == true)
  65.                     DodajCzas();
  66.         if (miedzyczas == true)
  67.         {
  68.             //odlicz
  69.         }
  70.  
  71.         break;
  72.     case WM_LBUTTONDOWN:
  73.         break;
  74.     case WM_CLOSE:
  75.         if ((MessageBox(hwnd, TEXT("Czy chcesz wyłączyć okno ?"), TEXT("Pytanie"), MB_OKCANCEL)) == IDOK)
  76.             DestroyWindow(hwnd);
  77.         else break;
  78.     case WM_DESTROY:
  79.         PostQuitMessage(0);
  80.         break;
  81.  
  82.     case WM_COMMAND:
  83.         switch (wParam)
  84.         {
  85.         case ID_START:
  86.             if (start == false)
  87.             {
  88.                 start = true;
  89.                 SetWindowText(p_start, TEXT("STOP"));
  90.             }
  91.             else
  92.             {
  93.                 start = false;
  94.                 SetWindowText(p_start, TEXT("start"));
  95.             }
  96.  
  97.             break;
  98.         case ID_STOP:
  99.             start = false;
  100.             break;
  101.         case ID_ZERUJ:
  102.             start = false;
  103.             s = 0;
  104.             m = 0;
  105.             g = 0;
  106.             wsprintf(wyswietl, TEXT("%2.2d:%2.2d:%2.2d"), g, m, s);
  107.             SetWindowText(pole, wyswietl);
  108.             break;
  109.  
  110.         default:
  111.             MessageBox(hwnd, TEXT("Zrobiłeś coś innego ;-)"), TEXT("Test"), MB_ICONINFORMATION);
  112.         }
  113.         break;
  114.     default:
  115.         return DefWindowProcW(hwnd, msg, wParam, lParam);
  116.     }
  117.     return 0;
  118. }
  119.  
  120. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  121. {
  122.     hInst = &hInstance;
  123.     WNDCLASSEX window;
  124.     window.cbClsExtra = NULL;
  125.     window.cbSize = sizeof(WNDCLASSEX);
  126.     window.cbWndExtra = NULL;
  127.     window.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  128.     window.hCursor = LoadCursor(*hInst, IDC_ARROW);
  129.     window.hIcon = LoadIcon(*hInst, IDI_APPLICATION);
  130.     window.hIconSm = NULL;
  131.     window.hInstance = *hInst;
  132.     window.lpfnWndProc = WndProc;
  133.     window.lpszClassName = Class_Name;
  134.     window.lpszMenuName = 0;
  135.     window.style = NULL;
  136.  
  137.     if (!RegisterClassEx(&window)) {
  138.         MessageBox(NULL, TEXT("Zarejestrowanie klasy nieudane! =("), TEXT("WARNING"), MB_OK | MB_ICONWARNING);
  139.         return 1;
  140.     }
  141.  
  142.    
  143.     okno1 = CreateWindowEx(WS_EX_WINDOWEDGE, Class_Name, TEXT("Najlepszy stoper ever!!!"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, NULL, NULL, *hInst, NULL);
  144.  
  145.     if (okno1 == NULL) {
  146.         MessageBox(NULL, TEXT("Stworzenie okna nieudane! =("), TEXT("WARNING"), MB_OK | MB_ICONWARNING);
  147.         return 2;
  148.     }
  149.  
  150.  
  151.     pole = CreateWindowEx(0, TEXT("STATIC"), TEXT("00:00:00"), WS_CHILD | WS_VISIBLE ,  100, 100, 150, 30, okno1, NULL, hInstance, NULL);
  152.     p_start = CreateWindowEx(0, TEXT("BUTTON"), TEXT("Start"), WS_CHILD | WS_VISIBLE, 100, 150, 150, 30, okno1, (HMENU)ID_START, hInstance, NULL);
  153.     p_stop = CreateWindowEx(0, TEXT("BUTTON"), TEXT("Stop"), WS_CHILD | WS_VISIBLE, 100, 190, 150, 30, okno1, (HMENU)ID_STOP, hInstance, NULL);
  154.     p_zeruj = CreateWindowEx(0, TEXT("BUTTON"), TEXT("Zeruj"), WS_CHILD | WS_VISIBLE, 100, 240, 150, 30, okno1, (HMENU)ID_ZERUJ, hInstance, NULL);
  155.  
  156.     ShowWindow(okno1, nCmdShow);
  157.     UpdateWindow(okno1);
  158.  
  159.     while (GetMessage(&Komunikat, NULL, 0, 0)) {
  160.  
  161.         TranslateMessage(&Komunikat);
  162.         DispatchMessage(&Komunikat);
  163.     }
  164.     UnregisterClass(Class_Name, *hInst);
  165.     return Komunikat.wParam;
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement