kielbasior

PRZYKLADOWE

Oct 17th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. #include <Windows.h>
  2.  
  3. HINSTANCE Instancja;
  4. int CmdShow;
  5. TCHAR NazwaKlasy[] = L"Klasa";
  6.  
  7. unsigned int Licznik = 0;
  8.  
  9. LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam) {
  10.      switch( uMsg )
  11.     {
  12.     case WM_CLOSE:
  13.             if (MessageBox(hwnd, L"Czy chcesz zamknac okno ?", L"Zamykanie", MB_YESNO | MB_ICONQUESTION) == IDYES) {
  14.                 DestroyWindow(hwnd);
  15.                 --Licznik;
  16.                 if (Licznik == 0) {
  17.                     MessageBox(0, L"Koniec Programu", L"Koniec", MB_OK | MB_ICONINFORMATION);
  18.                     PostQuitMessage(0);
  19.                 }
  20.             }
  21.       break;
  22.         case WM_LBUTTONDOWN :
  23.             if (Licznik == 5 ) {
  24.                 MessageBox(hwnd, L"Nie mozna utworzyc wiecej okien !", L"Blad", MB_OK | MB_ICONERROR);
  25.             } else {
  26.                 HWND bufor_uchwytu;
  27.                 bufor_uchwytu = CreateWindowEx(0, NazwaKlasy, L"Okienko", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 350, NULL, NULL, Instancja, NULL);
  28.                 if (bufor_uchwytu == 0) {
  29.                     MessageBox(0, L"Blad tworzenia nowego okna :(", L"Blad", MB_OK | MB_ICONERROR);
  30.                     break;
  31.                 } else {
  32.                     ++Licznik;
  33.                     ShowWindow(bufor_uchwytu, CmdShow);
  34.                     UpdateWindow(bufor_uchwytu);
  35.                 }
  36.             }
  37.     default:
  38.       return DefWindowProc( hwnd, uMsg, wParam, lParam );
  39.     }
  40.     return 0;
  41. }
  42.  
  43. ATOM WINAPI RejestrujKlase(WNDCLASSEX &wc) {
  44.     wc.cbClsExtra = 0;
  45.     wc.cbSize = sizeof(WNDCLASSEX);
  46.     wc.cbWndExtra = 0;
  47.     wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  48.     wc.hCursor = LoadCursor( NULL, IDC_ARROW );
  49.     wc.hIcon = 0;
  50.     wc.hIconSm = 0;
  51.     wc.hInstance = Instancja;
  52.     wc.lpfnWndProc = WndProc;
  53.     wc.lpszClassName = NazwaKlasy;
  54.     wc.lpszMenuName = 0;
  55.     wc.style = 0;
  56.     return RegisterClassEx(&wc);
  57. }
  58.  
  59. int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
  60.     Instancja = hInstance;
  61.     MSG msg;
  62.     WNDCLASSEX Klasa;
  63.     HWND Uchwyt;
  64.     CmdShow = nCmdShow;
  65.     if (RejestrujKlase(Klasa) == 0) {
  66.         MessageBox (0, L"Blad rejestracji klasy !", L"Blad", MB_OK | MB_ICONERROR);
  67.         return 1;
  68.     }
  69.    
  70.     Uchwyt = CreateWindowEx(0, NazwaKlasy, L"Okienko", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 350, NULL, NULL, Instancja, NULL);
  71.     if (Uchwyt == 0) {
  72.         MessageBox (0, L"Blad w tworzeniu okna", L"Blad", MB_OK | MB_ICONERROR);
  73.         return 1;
  74.     }
  75.     ++Licznik;
  76.     ShowWindow(Uchwyt, CmdShow);
  77.     UpdateWindow(Uchwyt);
  78.  
  79.   while( GetMessage(&msg, 0, 0, 0)) {
  80.         TranslateMessage(&msg);
  81.         DispatchMessage(&msg);
  82.   }
  83.     return msg.wParam;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment