Trust Napisano Styczeń 1, 2019 Autor Zgłoś Napisano Styczeń 1, 2019 troche banalne pytanie ale nigdzie nie moge znalezc odpowiedzi wienc jakim stylem (albo czyms innym) ustawic okno na sronku ekranu (odrazu po wlonczeniu) Cytuj
Nemo Napisano Styczeń 1, 2019 Zgłoś Napisano Styczeń 1, 2019 Eh wystarczy pomsylec. Jak tworzysz okno za pomoac CreateWindows to podajesz X,Y,szeroskoc i wysokosc okna - wiec wystarczy pobrac wielskoc ekranu i okno odpwoeidnio ustawic. Cytuj
Trust Napisano Styczeń 1, 2019 Autor Zgłoś Napisano Styczeń 1, 2019 ale mi to rozwiozanie , na kazdym innym monitorze (z innom rozdzielczosciom oczywiscie)bedzie gdzie indziej !!!!!!!!!!!!!!!!!! hahaha help me please! Cytuj
Aspect Napisano Styczeń 1, 2019 Zgłoś Napisano Styczeń 1, 2019 RUF3K napisał: ale mi to rozwiozanie , na kazdym innym monitorze (z innom rozdzielczosciom oczywiscie)bedzie gdzie indziej !!!!!!!!!!!!!!!!!! hahaha help me please! Najwyraźniej nie zrozumiałeś propozycji Piasia (prawdopodobnie dlatego, że nie została napisana w l33t). Na przyszłość dokładniej czytaj posty, bo przez wyśmiewanie dobrych podpowiedzi sam narażasz się na śmieszność. Cytuj
Omega Napisano Styczeń 1, 2019 Zgłoś Napisano Styczeń 1, 2019 Najlatwiej to pobrac szerokosc i wysokosc ekranu aby na poczatku wyznaczyc jego srodek. Zeby to osiagnac nalezy pobrana wysokosc i szerokosc podzielic przez 2 (ALE UWAGA!!!) - przez dwa bez reszty, bo liczby zmiennoprzecinkowe nas nie interesuja. Samo pobranie tych parametrow mozemy zrealizowac przez odpwiednie funkcje api, ktora nazwano: GetSystemMetrics. Dodatkowo w nich trzeba wpakowac odpowiednie stale, tj: SM_CXSCREEN : jak latwo sie domyslic ta stala pozwoli zwrocic szerokosc SM_CYSCREEN natomiast ta, nie szerokosc jak niektorzy mogli by sie domyslic, ale (i tu niespodzianka) wysokosc. Po tak skomplikowanej operacji mamy wyznaczony srodek ekranu. Nastepnie pozostaje nam wysokosc i szerokosc samego okna podzielic na pol (i tu niektorzy bystrzaki domysla sie, ze chodzi o dzielenie bez reszty). No reszta to juz z gorki. Teraz dla polozenia x(x - to zmienna reprezentujaca polozenie horyzontalne) wystarczy od srodka odjac powstala zmienna. I tak samo zachodzi dla polozenia y (y - zmienna reprezentatywna dla polozenia wysokosci). Adam Słodowy. Cytuj
Habit Napisano Styczeń 2, 2019 Zgłoś Napisano Styczeń 2, 2019 ruf3k wez sobie dialog boxa zapusc i daj mu tylko styl "DS_CENTER". That's all! Cytuj
Gucio Napisano Styczeń 2, 2019 Zgłoś Napisano Styczeń 2, 2019 W message loop: case WM_SHOWWINDOW: CenterDialog(hDlg,GetParent(hDlg)); break; no i implementacja: void CenterDialog(HWND hDlg, HWND Parent) { RECT ParentRect,DlgRect; GetWindowRect(Parent,&ParentRect); GetWindowRect(hDlg,&DlgRect); SetWindowPos(hDlg,HWND_TOP, ParentRect.left+(ParentRect.right-ParentRect.left-(DlgRect.right-DlgRect.left))/2, ParentRect.top+(ParentRect.bottom-ParentRect.top-(DlgRect.bottom-DlgRect.top))/2, 0,0,SWP_NOZORDER | SWP_NOSIZE ); }; Jak chcesz na srodku ekranu to daj jako parent desktop. I wsjo . Cytuj
Nemo Napisano Styczeń 2, 2019 Zgłoś Napisano Styczeń 2, 2019 RUF3K napisał: ale mi to rozwiozanie , na kazdym innym monitorze (z innom rozdzielczosciom oczywiscie)bedzie gdzie indziej !!!!!!!!!!!!!!!!!! hahaha help me please! Jak juz Bialy wyzej napisal sam narazasz sie na smiesznosc. Ha ha ha Cytuj
Jarema Napisano Styczeń 3, 2019 Zgłoś Napisano Styczeń 3, 2019 Bez dialogów, nic prostszego: int cxChar = LOWORD (GetDialogBaseUnits()); int cyChar = HIWORD (GetDialogBaseUnits()); hwnd = CreateWindow(szAppName, szAppName, WS_OVERLAPPEDWINDOW,(GetSystemMetrics(SM_CXFULLSCREEN) - 50 * cxChar)/2,(GetSystemMetrics(SM_CYFULLSCREEN) - 20 * cyChar)/2, 65 * cxChar, 27 * cyChar,NULL, NULL, hInstance, NULL); Mam nadzieję że to choć trochę jest czytelne Cytuj
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.