Hyluss

Ksiazka Telefoniczna

Dec 13th, 2016
857
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Link do calego projektu: http://www33.zippyshare.com/v/ilnp6WgK/file.html
  2.  
  3.  
  4. #include <windows.h>
  5. #include "resource.h"
  6. #include <vector>
  7. using namespace std;
  8.  
  9. HWND dialog;
  10.  
  11. struct person
  12. {
  13.     TCHAR name[100];
  14.     TCHAR surname[100];
  15.     TCHAR nrtel[100];
  16. };
  17.  
  18. vector <person> lista;
  19.  
  20. unsigned int listsize;
  21.  
  22. TCHAR tname[50], tsurname[50], *tnrtel[50], BUFF[100];
  23.  
  24. BOOL CALLBACK DlgProc(HWND hwnd, UINT msg2, WPARAM wParam, LPARAM lParam) {
  25.     switch (msg2) {
  26.         person buffperson;
  27.     case WM_INITDIALOG:
  28.     {
  29.         SetWindowText(GetDlgItem(hwnd, IDC_STATIC1), L"NAME");
  30.         SetWindowText(GetDlgItem(hwnd, IDC_STATIC2), L"SURNAME");
  31.         SetWindowText(GetDlgItem(hwnd, IDC_STATIC3), L"NR TEL");
  32.         break;
  33.     }
  34.     case WM_COMMAND:
  35.     {
  36.         switch (LOWORD(wParam))
  37.         {
  38.         case IDC_BUTTONDLGCANCEL: ShowWindow(hwnd, 0); break;
  39.         case IDC_BUTTONDLGOK:
  40.             {
  41.                 GetWindowText(GetDlgItem(hwnd, IDC_NAME), buffperson.name, 100);
  42.                 GetWindowText(GetDlgItem(hwnd, IDC_SURNAME), buffperson.surname, 100);
  43.                 GetWindowText(GetDlgItem(hwnd, IDC_NRTEL), buffperson.nrtel, 100);
  44.                 lista.push_back(buffperson);
  45.                 SetWindowText(GetDlgItem(hwnd, IDC_NAME), NULL);
  46.                 SetWindowText(GetDlgItem(hwnd, IDC_SURNAME),NULL);
  47.                 SetWindowText(GetDlgItem(hwnd, IDC_NRTEL), NULL);
  48.                 for (int i = 0; i < 100; i++)
  49.                 {
  50.                     buffperson.name[i] = ' ';
  51.                     buffperson.surname[i] = ' ';
  52.                     buffperson.nrtel[i] = ' ';
  53.                 }
  54.  
  55.                 ShowWindow(hwnd, 0);
  56.             break;
  57.             }
  58.         }
  59.  
  60.     default: return FALSE;
  61.     }
  62.     return TRUE;
  63.     }
  64. }
  65. RECT windowrect;
  66. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  67. {
  68.         switch (msg)
  69.         {
  70.         case WM_CREATE:
  71.             dialog = CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOGBAR), hwnd, DlgProc);
  72.             SetTimer(hwnd, 0, 100, 0); GetClientRect(hwnd, &windowrect);
  73.             break;
  74.         case WM_COMMAND:
  75.             switch (LOWORD(wParam))
  76.             {
  77.                 case ID_WPISZ: ShowWindow(dialog, 1);  break;
  78.                 case ID_USUN: lista.clear(); break;
  79.                 case ID_KONIEC: SendMessage(hwnd, WM_CLOSE, wParam, lParam); break;
  80.                 case ID_ACCELERATOR40001 : SendMessage(hwnd, WM_CLOSE, wParam, lParam); break;
  81.                 case ID_ACCELERATOR40002:ShowWindow(dialog, 1); break;
  82.                 case ID_ACCELERATOR40003:  lista.clear(); break;
  83.             }          
  84.             break;
  85.  
  86.         case WM_LBUTTONDOWN: wsprintf(BUFF, TEXT("size %d"), lista.size()); MessageBox(hwnd, BUFF, L"Twoj stary jak cie robil", MB_OK); break;
  87.  
  88.         case WM_TIMER: InvalidateRect(hwnd, &windowrect, 1); break;
  89.         case WM_PAINT:
  90.             {
  91.                 PAINTSTRUCT paintstruct;
  92.                 BeginPaint(hwnd, &paintstruct);
  93.                 for (int i = 0; i < lista.size(); i++)
  94.                 {
  95.                     for (int i = 0; i < 100; i++)
  96.                     {
  97.                         BUFF[i] = ' ';
  98.                     }
  99.  
  100.                     wsprintf(BUFF, TEXT("%ls %ls %ls"), lista[i].name, lista[i].surname, lista[i].nrtel);
  101.                     TextOut(paintstruct.hdc, 20, i * 20, BUFF, 100);
  102.                 }
  103.                 EndPaint(hwnd, &paintstruct);
  104.             }
  105.             break;
  106.  
  107.         case WM_CLOSE:
  108.             lista.clear();
  109.             DestroyWindow(hwnd);
  110.             break;
  111.  
  112.         case WM_DESTROY:
  113.             PostQuitMessage(0);
  114.             break;
  115.  
  116.         default:
  117.             return DefWindowProc(hwnd, msg, wParam, lParam);
  118.         }
  119.         return 0;
  120.     }
  121.  
  122.     int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  123.     {
  124.         MSG msg;
  125.         // WYPEŁNIANIE STRUKTURY
  126.         WNDCLASSEX wc;
  127.         LPCWSTR nazwa = L"xD";
  128.         wc.cbSize = sizeof(WNDCLASSEX);
  129.         wc.style = 0;
  130.         wc.lpfnWndProc = WndProc;
  131.         wc.cbClsExtra = 0;
  132.         wc.cbWndExtra = 0;
  133.         wc.hInstance = GetModuleHandle(0);
  134.         wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  135.         wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  136.         wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  137.         wc.lpszMenuName = (LPCTSTR)IDR_MENU1;
  138.         wc.lpszClassName = nazwa;
  139.         wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  140.  
  141.         // REJESTROWANIE KLASY OKNA
  142.         if (!RegisterClassEx(&wc))
  143.         {
  144.             MessageBox(NULL, L"Nieudana rejestracja okna", NULL,
  145.                 MB_ICONEXCLAMATION | MB_OK);
  146.             return 1;
  147.         }
  148.         HWND hwnd;
  149.  
  150.         HACCEL haccel;
  151.         haccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));
  152.  
  153.         // TWORZENIE OKNA
  154.         hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, nazwa, L"hehe", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, NULL, NULL, hInstance, NULL);
  155.         if (hwnd == NULL)
  156.         {
  157.             MessageBox(NULL, L"hwnd = NULL", NULL, MB_ICONEXCLAMATION);
  158.             return 1;
  159.         }
  160.  
  161.         ShowWindow(hwnd, nCmdShow); // Pokaż okienko...
  162.         UpdateWindow(hwnd);
  163.  
  164.         // Pętla komunikatów
  165.         while (GetMessage(&msg, NULL, 0, 0))
  166.         {
  167.             if (!TranslateAccelerator(hwnd, haccel, &msg))
  168.             {
  169.                 TranslateMessage(&msg);
  170.                 DispatchMessage(&msg);
  171.             }
  172.         }
  173.         UnregisterClass(nazwa, hInstance);
  174.         return msg.wParam;
  175.     }
Advertisement