Advertisement
Guest User

API

a guest
Oct 20th, 2014
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include<Windows.h>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. vector<HWND> Okna;
  6. HINSTANCE glob;
  7. unsigned short max_size = 10;
  8. int skokx, skoky = 30;
  9. TCHAR ClassName[] = TEXT("KLASA_OKIEN");
  10.  
  11. LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  12. {
  13.     switch(uMsg)
  14.     {
  15.     case WM_DESTROY:
  16.         PostQuitMessage(0); break;
  17.     case WM_LBUTTONDOWN:
  18.         {
  19.             if(Okna.size() < max_size)
  20.                 Okna.push_back(CreateWindowEx(0, ClassName, TEXT("Okno"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 40+Okna.size()*skokx,40+Okna.size()*skoky, 300, 300, 0, 0, glob, 0));
  21.             else
  22.                 MessageBox(hWnd, TEXT("ERROR: Za dużo okien"), TEXT("ERROR"), NULL);
  23.         }
  24.         break;
  25.     case WM_RBUTTONDOWN:
  26.         {
  27.             for(int i=0; i < Okna.size(); ++i)
  28.             {
  29.                 DestroyWindow(Okna[i]);
  30.                 Okna.erase(Okna.begin() +i);
  31.             }
  32.         }break;
  33.     case WM_CLOSE:
  34.         PostQuitMessage( 0 );
  35.         break;
  36.     default:
  37.         return DefWindowProc(hWnd, uMsg, wParam, lParam);
  38.     }
  39.     return 0;
  40. }
  41.  
  42. int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
  43. {
  44.     glob = hInstance;
  45.     WNDCLASSEX wc;
  46.     ZeroMemory(&wc, sizeof(WNDCLASSEX));
  47.     wc.cbClsExtra = 0;
  48.     wc.cbSize = sizeof(WNDCLASSEX);
  49.     wc.cbWndExtra = 0;
  50.     wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  51.     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  52.     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  53.     wc.hInstance = hInstance;
  54.     wc.lpfnWndProc = &WndProc;
  55.     wc.lpszClassName = ClassName;
  56.     wc.lpszMenuName = NULL;
  57.     wc.style = 0;
  58.     RegisterClassEx(&wc);
  59.     if(RegisterClassEx(&wc)!=0)
  60.     {
  61.         MessageBox(NULL, TEXT("ERROR: Brak rejestracji"), TEXT("ERROR"), NULL);
  62.         return 1;
  63.     }
  64.     Okna.push_back(CreateWindowEx(0, ClassName, TEXT("Okno"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 40,40, 300, 300, 0, 0, hInstance, 0 ));
  65.     if(Okna.front() == NULL)
  66.     {
  67.         MessageBox(NULL, TEXT("ERROR: Brak okna"), TEXT("ERROR"), NULL);
  68.         return 2;
  69.     }
  70.     ShowWindow(Okna.front(), nCmdShow);
  71.     UpdateWindow(Okna.front());
  72.     MSG msg;
  73.     while(GetMessage(&msg,0,0,0))
  74.     {
  75.         TranslateMessage( &msg );
  76.         DispatchMessage( &msg );
  77.     }
  78.     UnregisterClass( ClassName, hInstance );
  79.     return static_cast<int>(msg.wParam);
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement