Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Kontrolki2.cpp : Definiuje punkt wejścia dla aplikacji.
- //
- #include <windows.h>
- #include <stdio.h>
- #include <list>
- #include <string.h>
- #include <atlstr.h>
- #define IDC_COMBOBOX 1
- using namespace std;
- TCHAR NazwaAplikacji[] = TEXT("Aplikacja studencka");
- TCHAR NazwaKlasy[] = TEXT("OKNOGLOWNE");
- HINSTANCE hInstance;
- HWND hwnd[10];
- TCHAR liczbaosob[4];
- bool checked = true;
- wchar_t vipK[4];
- wchar_t ZestawSpecjalny[4];
- CString vip_text, zestawspecjalny;
- void ComboxEle()
- {
- for (int i = 0; i < 10; i++)
- {
- wchar_t temp[4];
- swprintf_s(temp, 4, L"%d",i);
- SendMessage(hwnd[0], CB_ADDSTRING,0, (LPARAM)temp);
- }
- }
- static LRESULT CALLBACK FunkcjaOkienkowa(HWND Okno, UINT Komunikat, WPARAM wParam, LPARAM lParam)
- {
- static int cxClient, cyClient;
- PAINTSTRUCT PS;
- RECT Rect;
- HDC hdc;
- GetClientRect(Okno, &Rect);
- switch (Komunikat) {
- case WM_CREATE:
- {
- GetClientRect(Okno, &Rect);
- int x = Rect.right / 2;
- int y = Rect.bottom / 2;
- hwnd[0] = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("COMBOBOX"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWN,
- x-100, y, 150, 200, Okno, (HMENU)1, hInstance, NULL);
- ComboxEle();
- 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);
- 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);
- 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);
- hwnd[4] = CreateWindowEx(NULL, TEXT("BUTTON"), TEXT("Vip"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, x, y - 300, 50, 50, Okno, (HMENU)5, hInstance, NULL);
- 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);
- 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);
- }
- break;
- case WM_PAINT:
- {
- BeginPaint(Okno, &PS);
- hdc = GetDC(Okno);
- GetClientRect(Okno, &Rect);
- EndPaint(Okno, &PS);
- }
- break;
- case WM_COMMAND:
- {
- switch (LOWORD(wParam))
- {
- case 1:
- {
- GetDlgItemText(Okno, IDC_COMBOBOX,liczbaosob, 4);
- }
- break;
- case 2:
- {
- //wchar_t name[400];
- CString s;
- CString c;
- wstring test;
- DWORD dlugosc = GetWindowTextLength(hwnd[3]);
- //LPTSTR edit = (LPTSTR)GlobalAlloc(GPTR, dlugosc + 1);
- GetWindowText(hwnd[3], (LPTSTR)(LPCTSTR)s, dlugosc + 1);
- //test += L"Imie: ";
- //test += s;
- //test += L" Osob: ";
- //test += liczbaosob;
- //test+= L" VIP: ";
- //test += yes;
- //test = test + L" Zestaw Specjalny: " + no;
- CString s1 = _T("Imie : "); // Cascading concatenation
- CString message = s1 + (LPCTSTR)s;
- message+=_T(" Osob: ");
- message+=liczbaosob;
- message+=_T(" VIP: ");
- message+=vip_text;
- message+=_T(" Zestaw Specjalny: ");
- message+=zestawspecjalny;
- //swprintf_s(name, 400, L"Imie: %s osób: %s VIP: %s Zestaw Specjalny: %s",edit, cha, vipK,ZestawSpecjalny);
- SetWindowText(hwnd[2], message);
- //GlobalFree(edit);
- }
- break;
- case 5:
- {
- SendDlgItemMessage(Okno, 5, BM_SETCHECK, 1, 0);
- SendDlgItemMessage(Okno, 6, BM_SETCHECK, 0, 0);
- vip_text = _T("Tak");
- }break;
- case 6:
- {
- SendDlgItemMessage(Okno, 5, BM_SETCHECK, 0, 0);
- SendDlgItemMessage(Okno, 6, BM_SETCHECK, 1, 0);
- vip_text = _T("Nie");
- }break;
- case 7:
- {
- if (checked)
- {
- SendDlgItemMessage(Okno, 7, BM_SETCHECK, 1, 0);
- checked = false;
- zestawspecjalny = _T("Tak");
- }
- else
- {
- SendDlgItemMessage(Okno, 7, BM_SETCHECK, 0, 0);
- checked = true;
- zestawspecjalny = _T("Nie");
- }
- }
- break;
- }
- }
- break;
- case WM_DESTROY:
- KillTimer(Okno, 1);
- PostQuitMessage(0);
- break;
- case WM_SIZE:
- {
- cxClient = (LOWORD(lParam)/2);
- cyClient = (HIWORD(lParam)/2);
- MoveWindow(hwnd[0], cxClient - 100, cyClient, 150, 200, TRUE);
- MoveWindow(hwnd[1], cxClient +50, cyClient, 100, 50, TRUE);
- MoveWindow(hwnd[2], cxClient, cyClient + 200, 200, 100, TRUE);
- return 0;
- }
- default:
- return DefWindowProc(Okno, Komunikat, wParam, lParam);
- }
- return 0;
- }
- static bool RejestrujKlasy()
- {
- WNDCLASSEX wc;
- wc.cbSize = sizeof(WNDCLASSEX);
- wc.cbClsExtra = wc.cbWndExtra = 0;
- wc.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(0, 0, 128));
- wc.hCursor = LoadCursor(NULL, IDC_ARROW);
- wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
- wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
- wc.hInstance = GetModuleHandle(NULL);
- wc.lpfnWndProc = &FunkcjaOkienkowa;
- wc.lpszClassName = NazwaKlasy;
- wc.lpszMenuName = NULL;
- wc.style = 0;
- return (RegisterClassEx(&wc) != 0);
- }
- static void WyrejestrujKlasy()
- {
- UnregisterClass(NazwaKlasy, GetModuleHandle(NULL));
- }
- int WINAPI WinMain(HINSTANCE Instancja, HINSTANCE Poprzednia, LPSTR Parametry, int Widocznosc)
- {
- // Zarejestruj klasę. Protestuj, jeżeli wystąpił błąd.
- if (!RejestrujKlasy()) {
- MessageBox(NULL, TEXT("Nie udało się zarejestrować klasy okna!"),
- NazwaAplikacji, MB_ICONSTOP | MB_OK);
- return 1;
- }
- // Stwórz główne okno. Również protestuj, jeżeli wystąpił błąd.
- HWND GlowneOkno = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
- NazwaKlasy, TEXT("Okno"), WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, CW_USEDEFAULT, 1280, 680,
- NULL, NULL, hInstance, NULL);
- if (GlowneOkno == NULL) {
- MessageBox(NULL, TEXT("Nie udało się stworzyć głównego okna!"),
- NazwaAplikacji, MB_ICONSTOP | MB_OK);
- return 2;
- }
- // Wyświetl i uaktualnij nowo stworzone okno.
- ShowWindow(GlowneOkno, Widocznosc);
- UpdateWindow(GlowneOkno);
- // Główna pętla komunikatów wątku.
- MSG Komunikat;
- while (GetMessage(&Komunikat, NULL, 0, 0) > 0) {
- TranslateMessage(&Komunikat);
- DispatchMessage(&Komunikat);
- }
- // Zwolnij pamięć klas i zakończ proces.
- WyrejestrujKlasy();
- return static_cast<int>(Komunikat.wParam);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement