SHARE
TWEET

Untitled

a guest Dec 18th, 2018 47 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Kontrolki2.cpp : Definiuje punkt wej艣cia dla aplikacji.
  2. //
  3. #include <windows.h>
  4. #include <stdio.h>
  5. #include <list>
  6. #include <string.h>
  7. #include <atlstr.h>
  8. #define IDC_COMBOBOX 6
  9. using namespace std;
  10. TCHAR NazwaAplikacji[] = TEXT("Aplikacja studencka");
  11. TCHAR NazwaKlasy[] = TEXT("OKNOGLOWNE");
  12. HINSTANCE hInstance;
  13. HWND hwnd[20];
  14. TCHAR ComboxSelectedItem[25];
  15. int sec, mis;
  16. int minuty;
  17. bool start = false;
  18. static LRESULT CALLBACK FunkcjaOkienkowa(HWND Okno, UINT Komunikat, WPARAM wParam, LPARAM lParam)
  19. {
  20.     static int cxClient, cyClient;
  21.  
  22.     PAINTSTRUCT PS;
  23.     RECT Rect;
  24.     HDC hdc;
  25.     GetClientRect(Okno, &Rect);
  26.     SYSTEMTIME st;
  27.    
  28.     switch (Komunikat) {
  29.     case WM_CREATE:
  30.         {
  31.         SetTimer(Okno,1,100,NULL);
  32.         GetLocalTime(&st);
  33.         hwnd[1] = CreateWindowEx(NULL,TEXT("BUTTON"),TEXT("START"),WS_CHILD | WS_VISIBLE | WS_BORDER,500,400,100,50,Okno,(HMENU)1,hInstance,NULL);
  34.         hwnd[2] = CreateWindowEx(NULL,TEXT("STATIC"),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER,500,200,100,50,Okno,(HMENU)2,hInstance,NULL);
  35.         hwnd[3] = CreateWindowEx(NULL,TEXT("BUTTON"),TEXT("RESET"),WS_CHILD | WS_VISIBLE | WS_BORDER,650,400,100,50,Okno,(HMENU)3,hInstance,NULL);
  36.  
  37.        
  38.     }
  39.     break;
  40.     case WM_KEYDOWN:
  41. {
  42.     switch(( int ) wParam )
  43.     {
  44.     case VK_RETURN:
  45.         {
  46.         if(!start)
  47.             {
  48.                 start = true;
  49.                 SetWindowText(hwnd[1],"STOP");
  50.                 EnableWindow(hwnd[3],FALSE);
  51.             }
  52.             else
  53.             {
  54.                 start = false;
  55.                 SetWindowText(hwnd[1],"START");
  56.                 EnableWindow(hwnd[3],TRUE);
  57.             }
  58.         break;
  59.         }
  60.     }
  61. }
  62. break;
  63.     case WM_PAINT:
  64.     {
  65.         BeginPaint(Okno, &PS);
  66.         hdc = GetDC(Okno);
  67.         GetClientRect(Okno, &Rect);
  68.         EndPaint(Okno, &PS);
  69.     }
  70.     break;
  71.     case WM_COMMAND:
  72.     {
  73.         switch(LOWORD(wParam))
  74.         {
  75.         case 1:
  76.             {
  77.             if(!start)
  78.             {
  79.                 start = true;
  80.                 SetWindowText(hwnd[1],"STOP");
  81.                 EnableWindow(hwnd[3],FALSE);
  82.             }
  83.             else
  84.             {
  85.                 start = false;
  86.                 SetWindowText(hwnd[1],"START");
  87.                 EnableWindow(hwnd[3],TRUE);
  88.             }
  89.             }
  90.             break;
  91.         case 3:
  92.             {
  93.                 mis = 0;
  94.                 sec = 0;
  95.                 minuty = 0;
  96.                 TCHAR s[100];
  97.                 sprintf_s(s,"%0.2d : %0.2d : %0.2d",minuty, sec, mis);
  98.                 SetWindowText(hwnd[2],s);
  99.  
  100.             }
  101.             break;
  102.         }
  103.        
  104.     }
  105.     break;
  106.     case WM_TIMER:
  107.     {
  108.         if(start)
  109.         {
  110.             mis +=10;
  111.  
  112.         if(mis >=100)
  113.         {
  114.             mis = 0;
  115.             sec += 1;
  116.         }
  117.         if(sec >= 60)
  118.         {
  119.             sec = 0;
  120.             minuty +=1;
  121.         }
  122.         TCHAR t[200];
  123.         sprintf_s(t,"%0.2d : %0.2d : %0.2d",minuty, sec, mis);
  124.         SetWindowText(hwnd[2],t);
  125.         }
  126.     }break;
  127.     case WM_DESTROY:
  128.         {
  129.         KillTimer(Okno, 1);
  130.         PostQuitMessage(0);
  131.         }
  132.         break;
  133.    
  134.     case WM_SIZE:
  135.     {
  136.         cxClient = (LOWORD(lParam)/2);
  137.         cyClient = (HIWORD(lParam)/2);
  138.         return 0;
  139.     }
  140.     default:
  141.         return DefWindowProc(Okno, Komunikat, wParam, lParam);
  142.     }
  143.  
  144.     return 0;
  145. }
  146.  
  147.  
  148.  
  149. static bool RejestrujKlasy()
  150. {
  151.     WNDCLASSEX wc;
  152.     wc.cbSize = sizeof(WNDCLASSEX);
  153.     wc.cbClsExtra = wc.cbWndExtra = 0;
  154.     wc.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(0, 0, 128));
  155.     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  156.     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  157.     wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  158.     wc.hInstance = GetModuleHandle(NULL);
  159.     wc.lpfnWndProc = &FunkcjaOkienkowa;
  160.     wc.lpszClassName = NazwaKlasy;
  161.     wc.lpszMenuName = NULL;
  162.     wc.style = 0;
  163.     return (RegisterClassEx(&wc) != 0);
  164. }
  165.  
  166. static void WyrejestrujKlasy()
  167. {
  168.     UnregisterClass(NazwaKlasy, GetModuleHandle(NULL));
  169. }
  170.  
  171. int WINAPI WinMain(HINSTANCE Instancja, HINSTANCE Poprzednia, LPSTR Parametry, int Widocznosc)
  172. {
  173.     // Zarejestruj klas臋. Protestuj, je偶eli wyst膮pi艂 b艂膮d.
  174.     if (!RejestrujKlasy()) {
  175.         MessageBox(NULL, TEXT("Nie uda艂o si臋 zarejestrowa膰 klasy okna!"),
  176.             NazwaAplikacji, MB_ICONSTOP | MB_OK);
  177.         return 1;
  178.     }
  179.     // Stw贸rz g艂贸wne okno. R贸wnie偶 protestuj, je偶eli wyst膮pi艂 b艂膮d.
  180.     HWND GlowneOkno = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
  181.         NazwaKlasy, TEXT("Okno"), WS_OVERLAPPEDWINDOW,
  182.         CW_USEDEFAULT, CW_USEDEFAULT, 1280, 680,
  183.         NULL, NULL, hInstance, NULL);
  184.  
  185.     if (GlowneOkno == NULL) {
  186.         MessageBox(NULL, TEXT("Nie uda艂o si臋 stworzy膰 g艂贸wnego okna!"),
  187.             NazwaAplikacji, MB_ICONSTOP | MB_OK);
  188.         return 2;
  189.     }
  190.     // Wy艣wietl i uaktualnij nowo stworzone okno.
  191.     ShowWindow(GlowneOkno, Widocznosc);
  192.     UpdateWindow(GlowneOkno);
  193.     // G艂贸wna p臋tla komunikat贸w w膮tku.
  194.     MSG Komunikat;
  195.     while (GetMessage(&Komunikat, NULL, 0, 0) > 0) {
  196.         TranslateMessage(&Komunikat);
  197.         DispatchMessage(&Komunikat);
  198.     }
  199.     // Zwolnij pami臋膰 klas i zako艅cz proces.
  200.     WyrejestrujKlasy();
  201.     return static_cast<int>(Komunikat.wParam);
  202. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top