Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. #ifndef UNICODE
  2. #define UNICODE
  3. #endif
  4.  
  5. #include <windows.h>
  6. HWND hwnd, hwnd_2, hwnd_3, hwnd_4;
  7. int counter = 0, ScreenX, ScreenY;
  8.  
  9. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  10.  
  11. void Change_pos_after_lbd()
  12. {
  13. int dividedheight = ScreenY / 2;//dziele wysokosc by uzyskac rozmiar Y zeby zakryc caly ekran
  14. int dividedwidth = ScreenX / 2;//dziele szerokosc by uzyskac rozmiar Y zeby zakryc caly ekran
  15. //MoveWindow(uchwyt, posX, posY, rozmiarX, rozmiarY, BOOL);
  16. MoveWindow(hwnd, 0, 0, dividedwidth, dividedheight, TRUE);
  17. ShowWindow(hwnd, SW_SHOW);
  18. UpdateWindow(hwnd);
  19. MoveWindow(hwnd_2, ScreenX - dividedwidth, ScreenY - dividedheight, dividedwidth, dividedheight, TRUE);
  20. ShowWindow(hwnd_2, SW_SHOW);
  21. UpdateWindow(hwnd_2);
  22. MoveWindow(hwnd_3, ScreenX - dividedwidth, 0, dividedwidth, dividedheight, TRUE);
  23. ShowWindow(hwnd_3, SW_SHOW);
  24. UpdateWindow(hwnd_3);
  25. MoveWindow(hwnd_4, 0, ScreenY - dividedheight, dividedwidth, dividedheight, TRUE);
  26. ShowWindow(hwnd_4, SW_SHOW);
  27. UpdateWindow(hwnd_4);
  28. }
  29.  
  30. void Change_pos_after_rbd()
  31. {
  32. int dividedheight = ScreenY / 4; //dziele wysokosc by uzyskac rozmiar Y zeby zakryc caly ekran
  33.  
  34. MoveWindow(hwnd, 0, 0, ScreenX, dividedheight, TRUE);
  35. ShowWindow(hwnd, SW_SHOW);
  36. UpdateWindow(hwnd);
  37. MoveWindow(hwnd_2, 0, dividedheight, ScreenX, dividedheight, TRUE);
  38. ShowWindow(hwnd_2, SW_SHOW);
  39. UpdateWindow(hwnd_2);
  40. MoveWindow(hwnd_3, 0, dividedheight * 2, ScreenX, dividedheight, TRUE);
  41. ShowWindow(hwnd_3, SW_SHOW);
  42. UpdateWindow(hwnd_3);
  43. MoveWindow(hwnd_4, 0, dividedheight * 3, ScreenX, dividedheight, TRUE);
  44. ShowWindow(hwnd_4, SW_SHOW);
  45. UpdateWindow(hwnd_4);
  46. }
  47.  
  48. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR pCmdLine, int nCmdShow) {
  49. //Zarejestrowanie okna
  50. const wchar_t CLASS_NAME[] = L"Moje okno";
  51. ScreenX = GetSystemMetrics(SM_CXSCREEN); //Pobranie szerokosci ekranu
  52. ScreenY = GetSystemMetrics(SM_CYSCREEN); //Pobranie wysokosci ekranu
  53.  
  54. WNDCLASSEX wc = { 0 };
  55.  
  56. wc.cbSize = sizeof(WNDCLASSEX);
  57. wc.lpfnWndProc = WindowProc;
  58. wc.hInstance = hInstance;
  59. wc.lpszClassName = CLASS_NAME;
  60. wc.lpszMenuName = NULL;
  61. wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  62.  
  63. if (!RegisterClassEx(&wc))
  64. {
  65. MessageBox(NULL, TEXT("blad rejestracji"), TEXT("Tytul"), MB_OK);
  66. }
  67. //Stworzenie Okna
  68. hwnd = CreateWindowEx(0, CLASS_NAME, L"HEJ, JESTEM OKNO", WS_OVERLAPPEDWINDOW,
  69. /*Rozmiar i pozycja*/ CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, 0, //Ojciec
  70. 0, //Menu
  71. hInstance, //uchwyt Instancji
  72. 0 //Dodatkowe dane aplikacji
  73. );
  74. counter++;
  75. hwnd_2 = CreateWindowEx(0, CLASS_NAME, L"HEJ, JESTEM OKNO", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, 0, 0, hInstance, 0);
  76. counter++;
  77. hwnd_3 = CreateWindowEx(0, CLASS_NAME, L"HEJ, JESTEM OKNO", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, 0, 0, hInstance, 0);
  78. counter++;
  79. hwnd_4 = CreateWindowEx(0, CLASS_NAME, L"HEJ, JESTEM OKNO", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, 0, 0, hInstance, 0);
  80. counter++;
  81.  
  82. if (hwnd == NULL)
  83. {
  84. MessageBox(NULL, TEXT("blad tworzenia okna"), TEXT("Tytul"), MB_OK);
  85. UnregisterClass(CLASS_NAME, hInstance);
  86. return 0;
  87. }
  88. ShowWindow(hwnd, nCmdShow);
  89. UpdateWindow(hwnd);
  90.  
  91. ShowWindow(hwnd_2, nCmdShow);
  92. UpdateWindow(hwnd_2);
  93.  
  94. ShowWindow(hwnd_3, nCmdShow);
  95. UpdateWindow(hwnd_3);
  96.  
  97. ShowWindow(hwnd_4, nCmdShow);
  98. UpdateWindow(hwnd_4);
  99.  
  100. MSG msg = {};
  101. while (GetMessage(&msg, 0, 0, 0))
  102. {
  103. TranslateMessage(&msg);
  104. DispatchMessage(&msg);
  105. }
  106.  
  107. UnregisterClass(CLASS_NAME, hInstance);
  108. return 0;
  109. }
  110.  
  111. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  112. {
  113. switch (uMsg)
  114. {
  115. case WM_LBUTTONDOWN:
  116. Change_pos_after_lbd();
  117. break;
  118.  
  119. case WM_RBUTTONDOWN:
  120. Change_pos_after_rbd();
  121. break;
  122.  
  123. case WM_CLOSE:
  124. counter--;
  125. if (MessageBox(hwnd, TEXT("Czy na pewno chcesz zamknąć?"), TEXT("Pytanie"), MB_YESNO | MB_ICONQUESTION) == IDYES)
  126. {
  127. DestroyWindow(hwnd);
  128. }
  129. break;
  130.  
  131. case WM_DESTROY:
  132. if (counter == 0)
  133. {
  134. MessageBox(hwnd, TEXT("Koniec Dzialania aplikacji!"), TEXT("Koniec"), MB_OK | MB_ICONSTOP);
  135. PostQuitMessage(0);
  136. }
  137. break;
  138.  
  139. default:
  140. return DefWindowProc(hwnd, uMsg, wParam, lParam);
  141. }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement