Advertisement
Guest User

Untitled

a guest
Dec 14th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Windows.h>
  2. #include "resource.h"
  3. #include <stdio.h>
  4. #include <vector>
  5. //­­­­­­­Zmienne i funkcje globalne.
  6. HINSTANCE hInstance;
  7. struct imiona
  8. {
  9. char imie[21];
  10. char nazwisko[21];
  11. char godzina[3];
  12. char minuta[3];
  13. bool przyjscie;
  14. };
  15. HICON zielona;
  16. HICON czerwona;
  17. std::vector <imiona> baza;
  18. //­­­­­­­Zmienne globalne.
  19. BOOL CALLBACK DlgProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam )
  20. {
  21. switch( Msg )
  22. {
  23. case WM_COMMAND:
  24. {
  25. switch( LOWORD( wParam ) )
  26. {
  27. case IDOK:
  28. {
  29. imiona temp;
  30. GetDlgItemText(hwnd, IDC_EDIT1, temp.imie, sizeof(temp.imie));
  31. GetDlgItemText(hwnd, IDC_EDIT2, temp.nazwisko, sizeof
  32. (temp.nazwisko));
  33. GetDlgItemText(hwnd, IDC_EDIT3, temp.godzina, sizeof
  34. (temp.godzina));
  35. GetDlgItemText(hwnd, IDC_EDIT4, temp.minuta, sizeof
  36. (temp.minuta));
  37. if (strlen(temp.imie) == 0 || strlen(temp.nazwisko) == 0 ||
  38. atoi(temp.godzina) > 23 ||
  39. atoi(temp.godzina) < 0 || atoi(temp.minuta) > 59 || atoi
  40. (temp.minuta) < 0)
  41. MessageBox(hwnd, "Wprowadz prawidłowe dane!", "Błąd",
  42. NULL);
  43. else
  44. {
  45. if (IsDlgButtonChecked(hwnd, IDC_RADIO1))
  46. temp.przyjscie = true;
  47. else if (IsDlgButtonChecked(hwnd, IDC_RADIO2))
  48. temp.przyjscie = false;
  49. baza.push_back(temp);
  50. EndDialog( hwnd, IDOK );
  51. }
  52. break;
  53. }
  54. case IDCANCEL:
  55. EndDialog( hwnd, IDCANCEL );
  56. break;
  57. }
  58. }
  59. break;
  60. case WM_INITDIALOG:
  61. CheckRadioButton(hwnd, IDC_RADIO1, IDC_RADIO2, IDC_RADIO1);
  62. break;
  63. default:
  64. return FALSE;
  65. }
  66. return TRUE;
  67. }
  68. //Komunikaty
  69. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  70. {
  71. HDC hdc;
  72. switch (msg)
  73. {
  74. case WM_CREATE:
  75. zielona = LoadIcon(GetModuleHandle( NULL ), MAKEINTRESOURCE(IDI_ICON2));
  76. czerwona = LoadIcon(GetModuleHandle( NULL ), MAKEINTRESOURCE(IDI_ICON1));
  77. break;
  78. case WM_COMMAND:
  79. switch (LOWORD(wParam))
  80. {
  81. case ID_WPIS_USUNWSZYSTKIE:
  82. {
  83. baza.clear();
  84. hdc = GetDC(hwnd);
  85. RECT rect;
  86. GetClientRect (hwnd, &rect) ;
  87. InvalidateRect(hwnd, &rect, true);
  88. ReleaseDC(hwnd, hdc);
  89. break;
  90. }
  91. case ID_WPIS_DODAJ:
  92. {
  93. int db = DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),
  94. hwnd, DlgProc);
  95. if (db == IDOK)
  96. {
  97. hdc = GetDC(hwnd);
  98. RECT rect;
  99. GetClientRect (hwnd, &rect) ;
  100. InvalidateRect(hwnd, &rect, true);
  101. ReleaseDC(hwnd, hdc);
  102. }
  103. break;
  104. }
  105. case ID_WPIS_KONIEC:
  106. DestroyWindow(hwnd);
  107. break;
  108. }
  109. case WM_PAINT:
  110. {
  111. PAINTSTRUCT ps;
  112. hdc = BeginPaint(hwnd, &ps);
  113. int i = 0;
  114. for (int j = baza.size()­1; j >= 0; j­­, i++)
  115. {
  116. if (baza[j].przyjscie == true)
  117. DrawIcon(hdc, 10, 10 + (i * 20), zielona);
  118. else
  119. DrawIcon(hdc, 10, 10 + (i * 20), czerwona);
  120. char buff[512];
  121. sprintf_s(buff, "%s %s ­ %s:%s", baza[j].imie, baza[j].nazwisko,
  122. baza[j].godzina, baza[j].minuta);
  123. TextOut(hdc, 50, 18 + (i * 20), buff, strlen(buff));
  124. }
  125. EndPaint(hwnd, &ps);
  126. break;
  127. }
  128. case WM_CLOSE:
  129. DestroyWindow(hwnd);
  130. break;
  131. case WM_DESTROY:
  132. PostQuitMessage(0);
  133. break;
  134. default:
  135. return DefWindowProc(hwnd, msg, wParam, lParam);
  136. }
  137. return 0;
  138. }
  139. //Main
  140. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR ilCmdLine, int
  141. nCmdShow)
  142. {
  143. WNDCLASSEX window;
  144. HWND hwnd = NULL;
  145. MSG msg;
  146. TCHAR Class_Name[] = TEXT("OKNO_TEST");
  147. TCHAR Title[] = TEXT("Księga wej/wyj");
  148. window.cbClsExtra = NULL;
  149. window.cbSize = sizeof(WNDCLASSEX);
  150. window.cbWndExtra = NULL;
  151. window.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  152. window.hCursor = LoadCursor(NULL, IDC_ARROW);
  153. window.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  154. window.hIconSm = NULL;
  155. window.hInstance = hInstance;
  156. window.lpfnWndProc = WndProc;
  157. window.lpszClassName = Class_Name;
  158. window.lpszMenuName = 0;
  159. window.style = CS_VREDRAW | CS_HREDRAW;
  160. RegisterClassEx(&window);
  161. HMENU menu;
  162. menu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU1));
  163. hwnd = ((CreateWindowEx(WS_EX_WINDOWEDGE, Class_Name, Title,
  164. WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,
  165. 300, 600, NULL, menu, hInstance, NULL)));
  166. ShowWindow(hwnd, nCmdShow);
  167. UpdateWindow(hwnd);
  168. HACCEL haccel;
  169. haccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));
  170. if( !haccel )
  171. {
  172. MessageBox( hwnd, "Nie można załadować akceleratorów." , NULL,
  173. MB_ICONEXCLAMATION );
  174. }
  175. while (GetMessage(&msg, NULL, 0, 0))
  176. {
  177. if (!TranslateAccelerator(hwnd, haccel, &msg))
  178. {
  179. TranslateMessage(&msg);
  180. DispatchMessage(&msg);
  181. }
  182. }
  183. UnregisterClass(Class_Name, hInstance);
  184. return msg.wParam;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement