Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 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 1
  9. using namespace std;
  10. TCHAR NazwaAplikacji[] = TEXT("Aplikacja studencka");
  11. TCHAR NazwaKlasy[] = TEXT("OKNOGLOWNE");
  12. HINSTANCE hInstance;
  13. HWND hwnd[10];
  14. TCHAR liczbaosob[4];
  15. bool checked = true;
  16. wchar_t vipK[4];
  17. wchar_t ZestawSpecjalny[4];
  18. CString vip_text, zestawspecjalny;
  19. void ComboxEle()
  20. {
  21.  
  22. for (int i = 0; i < 10; i++)
  23. {
  24. wchar_t temp[4];
  25. swprintf_s(temp, 4, L"%d",i);
  26. SendMessage(hwnd[0], CB_ADDSTRING,0, (LPARAM)temp);
  27. }
  28. }
  29. static LRESULT CALLBACK FunkcjaOkienkowa(HWND Okno, UINT Komunikat, WPARAM wParam, LPARAM lParam)
  30. {
  31. static int cxClient, cyClient;
  32.  
  33. PAINTSTRUCT PS;
  34. RECT Rect;
  35. HDC hdc;
  36. GetClientRect(Okno, &Rect);
  37.  
  38. switch (Komunikat) {
  39. case WM_CREATE:
  40. {
  41. GetClientRect(Okno, &Rect);
  42. int x = Rect.right / 2;
  43. int y = Rect.bottom / 2;
  44. hwnd[0] = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("COMBOBOX"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWN,
  45. x-100, y, 150, 200, Okno, (HMENU)1, hInstance, NULL);
  46. ComboxEle();
  47. hwnd[1] = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("BUTTON"),TEXT("WCISNIJ MNIE"), WS_CHILD | WS_VISIBLE | WS_BORDER, x + 50, y, 100, 50, Okno,(HMENU)2, hInstance, NULL);
  48. hwnd[2] = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("STATIC"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, x, y+200, 200, 100, Okno, (HMENU)3, hInstance, NULL);
  49. hwnd[3] = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, x - 400, y, 200, 100,Okno, (HMENU)4, hInstance, NULL);
  50. hwnd[4] = CreateWindowEx(NULL, TEXT("BUTTON"), TEXT("Vip"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, x, y - 300, 50, 50, Okno, (HMENU)5, hInstance, NULL);
  51. hwnd[5] = CreateWindowEx(NULL, TEXT("BUTTON"), TEXT("Zwykły"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, x+100, y - 300, 50, 50, Okno, (HMENU)6, hInstance, NULL);
  52. hwnd[6] = CreateWindowEx(NULL,TEXT("BUTTON"), TEXT("Zestaw Specjalny"), WS_CHILD | WS_VISIBLE | BS_CHECKBOX, x + 200, y, 150, 50, Okno, (HMENU)7, hInstance, NULL);
  53. }
  54. break;
  55.  
  56. case WM_PAINT:
  57. {
  58. BeginPaint(Okno, &PS);
  59. hdc = GetDC(Okno);
  60. GetClientRect(Okno, &Rect);
  61. EndPaint(Okno, &PS);
  62. }
  63. break;
  64. case WM_COMMAND:
  65. {
  66. switch (LOWORD(wParam))
  67. {
  68. case 1:
  69. {
  70.  
  71. GetDlgItemText(Okno, IDC_COMBOBOX,liczbaosob, 4);
  72.  
  73.  
  74. }
  75. break;
  76. case 2:
  77. {
  78. //wchar_t name[400];
  79.  
  80.  
  81. CString s;
  82. CString c;
  83. wstring test;
  84. DWORD dlugosc = GetWindowTextLength(hwnd[3]);
  85. //LPTSTR edit = (LPTSTR)GlobalAlloc(GPTR, dlugosc + 1);
  86. GetWindowText(hwnd[3], (LPTSTR)(LPCTSTR)s, dlugosc + 1);
  87.  
  88. //test += L"Imie: ";
  89. //test += s;
  90. //test += L" Osob: ";
  91. //test += liczbaosob;
  92. //test+= L" VIP: ";
  93. //test += yes;
  94. //test = test + L" Zestaw Specjalny: " + no;
  95.  
  96. CString s1 = _T("Imie : "); // Cascading concatenation
  97. CString message = s1 + (LPCTSTR)s;
  98. message+=_T(" Osob: ");
  99. message+=liczbaosob;
  100. message+=_T(" VIP: ");
  101. message+=vip_text;
  102. message+=_T(" Zestaw Specjalny: ");
  103. message+=zestawspecjalny;
  104.  
  105. //swprintf_s(name, 400, L"Imie: %s osób: %s VIP: %s Zestaw Specjalny: %s",edit, cha, vipK,ZestawSpecjalny);
  106. SetWindowText(hwnd[2], message);
  107. //GlobalFree(edit);
  108. }
  109. break;
  110. case 5:
  111. {
  112. SendDlgItemMessage(Okno, 5, BM_SETCHECK, 1, 0);
  113. SendDlgItemMessage(Okno, 6, BM_SETCHECK, 0, 0);
  114. vip_text = _T("Tak");
  115. }break;
  116. case 6:
  117. {
  118. SendDlgItemMessage(Okno, 5, BM_SETCHECK, 0, 0);
  119. SendDlgItemMessage(Okno, 6, BM_SETCHECK, 1, 0);
  120. vip_text = _T("Nie");
  121. }break;
  122. case 7:
  123. {
  124.  
  125. if (checked)
  126. {
  127. SendDlgItemMessage(Okno, 7, BM_SETCHECK, 1, 0);
  128. checked = false;
  129. zestawspecjalny = _T("Tak");
  130. }
  131. else
  132. {
  133. SendDlgItemMessage(Okno, 7, BM_SETCHECK, 0, 0);
  134. checked = true;
  135. zestawspecjalny = _T("Nie");
  136. }
  137. }
  138. break;
  139. }
  140.  
  141. }
  142. break;
  143. case WM_DESTROY:
  144. KillTimer(Okno, 1);
  145. PostQuitMessage(0);
  146. break;
  147.  
  148. case WM_SIZE:
  149. {
  150. cxClient = (LOWORD(lParam)/2);
  151. cyClient = (HIWORD(lParam)/2);
  152. MoveWindow(hwnd[0], cxClient - 100, cyClient, 150, 200, TRUE);
  153. MoveWindow(hwnd[1], cxClient +50, cyClient, 100, 50, TRUE);
  154. MoveWindow(hwnd[2], cxClient, cyClient + 200, 200, 100, TRUE);
  155.  
  156. return 0;
  157. }
  158. default:
  159. return DefWindowProc(Okno, Komunikat, wParam, lParam);
  160. }
  161. return 0;
  162.  
  163.  
  164. }
  165.  
  166. static bool RejestrujKlasy()
  167. {
  168. WNDCLASSEX wc;
  169. wc.cbSize = sizeof(WNDCLASSEX);
  170. wc.cbClsExtra = wc.cbWndExtra = 0;
  171. wc.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(0, 0, 128));
  172. wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  173. wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  174. wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  175. wc.hInstance = GetModuleHandle(NULL);
  176. wc.lpfnWndProc = &FunkcjaOkienkowa;
  177. wc.lpszClassName = NazwaKlasy;
  178. wc.lpszMenuName = NULL;
  179. wc.style = 0;
  180. return (RegisterClassEx(&wc) != 0);
  181. }
  182.  
  183. static void WyrejestrujKlasy()
  184. {
  185. UnregisterClass(NazwaKlasy, GetModuleHandle(NULL));
  186. }
  187.  
  188. int WINAPI WinMain(HINSTANCE Instancja, HINSTANCE Poprzednia, LPSTR Parametry, int Widocznosc)
  189. {
  190. // Zarejestruj klasę. Protestuj, jeżeli wystąpił błąd.
  191. if (!RejestrujKlasy()) {
  192. MessageBox(NULL, TEXT("Nie udało się zarejestrować klasy okna!"),
  193. NazwaAplikacji, MB_ICONSTOP | MB_OK);
  194. return 1;
  195. }
  196. // Stwórz główne okno. Również protestuj, jeżeli wystąpił błąd.
  197. HWND GlowneOkno = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
  198. NazwaKlasy, TEXT("Okno"), WS_OVERLAPPEDWINDOW,
  199. CW_USEDEFAULT, CW_USEDEFAULT, 1280, 680,
  200. NULL, NULL, hInstance, NULL);
  201.  
  202. if (GlowneOkno == NULL) {
  203. MessageBox(NULL, TEXT("Nie udało się stworzyć głównego okna!"),
  204. NazwaAplikacji, MB_ICONSTOP | MB_OK);
  205. return 2;
  206. }
  207. // Wyświetl i uaktualnij nowo stworzone okno.
  208. ShowWindow(GlowneOkno, Widocznosc);
  209. UpdateWindow(GlowneOkno);
  210. // Główna pętla komunikatów wątku.
  211. MSG Komunikat;
  212. while (GetMessage(&Komunikat, NULL, 0, 0) > 0) {
  213. TranslateMessage(&Komunikat);
  214. DispatchMessage(&Komunikat);
  215. }
  216. // Zwolnij pamięć klas i zakończ proces.
  217. WyrejestrujKlasy();
  218. return static_cast<int>(Komunikat.wParam);
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement