Link do calego projektu: http://www33.zippyshare.com/v/ilnp6WgK/file.html #include #include "resource.h" #include using namespace std; HWND dialog; struct person { TCHAR name[100]; TCHAR surname[100]; TCHAR nrtel[100]; }; vector lista; unsigned int listsize; TCHAR tname[50], tsurname[50], *tnrtel[50], BUFF[100]; BOOL CALLBACK DlgProc(HWND hwnd, UINT msg2, WPARAM wParam, LPARAM lParam) { switch (msg2) { person buffperson; case WM_INITDIALOG: { SetWindowText(GetDlgItem(hwnd, IDC_STATIC1), L"NAME"); SetWindowText(GetDlgItem(hwnd, IDC_STATIC2), L"SURNAME"); SetWindowText(GetDlgItem(hwnd, IDC_STATIC3), L"NR TEL"); break; } case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_BUTTONDLGCANCEL: ShowWindow(hwnd, 0); break; case IDC_BUTTONDLGOK: { GetWindowText(GetDlgItem(hwnd, IDC_NAME), buffperson.name, 100); GetWindowText(GetDlgItem(hwnd, IDC_SURNAME), buffperson.surname, 100); GetWindowText(GetDlgItem(hwnd, IDC_NRTEL), buffperson.nrtel, 100); lista.push_back(buffperson); SetWindowText(GetDlgItem(hwnd, IDC_NAME), NULL); SetWindowText(GetDlgItem(hwnd, IDC_SURNAME),NULL); SetWindowText(GetDlgItem(hwnd, IDC_NRTEL), NULL); for (int i = 0; i < 100; i++) { buffperson.name[i] = ' '; buffperson.surname[i] = ' '; buffperson.nrtel[i] = ' '; } ShowWindow(hwnd, 0); break; } } default: return FALSE; } return TRUE; } } RECT windowrect; LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CREATE: dialog = CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOGBAR), hwnd, DlgProc); SetTimer(hwnd, 0, 100, 0); GetClientRect(hwnd, &windowrect); break; case WM_COMMAND: switch (LOWORD(wParam)) { case ID_WPISZ: ShowWindow(dialog, 1); break; case ID_USUN: lista.clear(); break; case ID_KONIEC: SendMessage(hwnd, WM_CLOSE, wParam, lParam); break; case ID_ACCELERATOR40001 : SendMessage(hwnd, WM_CLOSE, wParam, lParam); break; case ID_ACCELERATOR40002:ShowWindow(dialog, 1); break; case ID_ACCELERATOR40003: lista.clear(); break; } break; case WM_LBUTTONDOWN: wsprintf(BUFF, TEXT("size %d"), lista.size()); MessageBox(hwnd, BUFF, L"Twoj stary jak cie robil", MB_OK); break; case WM_TIMER: InvalidateRect(hwnd, &windowrect, 1); break; case WM_PAINT: { PAINTSTRUCT paintstruct; BeginPaint(hwnd, &paintstruct); for (int i = 0; i < lista.size(); i++) { for (int i = 0; i < 100; i++) { BUFF[i] = ' '; } wsprintf(BUFF, TEXT("%ls %ls %ls"), lista[i].name, lista[i].surname, lista[i].nrtel); TextOut(paintstruct.hdc, 20, i * 20, BUFF, 100); } EndPaint(hwnd, &paintstruct); } break; case WM_CLOSE: lista.clear(); DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG msg; // WYPEŁNIANIE STRUKTURY WNDCLASSEX wc; LPCWSTR nazwa = L"xD"; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = GetModuleHandle(0); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszMenuName = (LPCTSTR)IDR_MENU1; wc.lpszClassName = nazwa; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // REJESTROWANIE KLASY OKNA if (!RegisterClassEx(&wc)) { MessageBox(NULL, L"Nieudana rejestracja okna", NULL, MB_ICONEXCLAMATION | MB_OK); return 1; } HWND hwnd; HACCEL haccel; haccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1)); // TWORZENIE OKNA hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, nazwa, L"hehe", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, NULL, NULL, hInstance, NULL); if (hwnd == NULL) { MessageBox(NULL, L"hwnd = NULL", NULL, MB_ICONEXCLAMATION); return 1; } ShowWindow(hwnd, nCmdShow); // Pokaż okienko... UpdateWindow(hwnd); // Pętla komunikatów while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(hwnd, haccel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } UnregisterClass(nazwa, hInstance); return msg.wParam; }