Hyluss icon

Ksiazka Telefoniczna

Hyluss | PRO | 12/13/16 01:24:09 PM UTC | 0 ⭐ | 10398 👁️ | Never ⏰ | []
C++ (WinAPI) |

0 B

|

None

|

0 👍

/

0 👎

Link do calego projektu: http://www33.zippyshare.com/v/ilnp6WgK/file.html
 
 
#include <windows.h>
#include "resource.h"
#include <vector>
using namespace std;
 
HWND dialog;
 
struct person
{
    TCHAR name[100];
    TCHAR surname[100];
    TCHAR nrtel[100];
};
 
vector <person> 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;
    }

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎