Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.45 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement