Fragment Napisano Luty 17, 2019 Autor Zgłoś Udostępnij Napisano Luty 17, 2019 Nie pamiętam dobrze i nie chce mi się teraz sprawdzać, ale czy czasami WM_SIZING nie działa w ten sposób, że podczas zmieniania rozmiaru prostokąt okna możesz zmieniać bez żadnych ograniczeń, a dopiero po zwolnieniu przycisku myszki, okno przyjmuje minimalny rozmiar ? Czy jesteś pewien, że aplikacja, podczas zmieniania rozmiaru okna otrzymuje serię komunikatów WM_SIZING, czy aby nie jest to pojedynczy komunikat pojawiający się dopiero po zwolnieniu przycisku myszki ? Poza tym WM_SIZING operuje na strukturze RECt, co wymaga sprawdzania czy różnica pomiędzy jej składowymi right- left oraz bottom-top nie są mniejsze od naszego rozmiaru minimalnego. Podsumowując, stosowanie WM_GETMINMAINFO wydaje się minimalnie wygodniejsze, a ponadto daje efekt dokładnie taki sam jak wiele aplikacji komercyjnych w odróżnieniu od WM_SIZING. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Fragment Napisano Luty 17, 2019 Autor Zgłoś Udostępnij Napisano Luty 17, 2019 Jednak sprawdziłem. Rzeczywiście WM_SIZING działa poprawnie. Nie da się jednak ukryć, że jest bardziej upierdliwe w użyciu. Trzeba np. sprawdzać, którą z 4-ech krawędzi używamy do zmiany rozmiaru okna, aby minotorować rozmiar prostokąta okna w strukturze RECT. Przyznaję jednak, że nie jest to duży kłopot. Pozrowienia Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Luty 20, 2019 Zgłoś Udostępnij Napisano Luty 20, 2019 Wcale nie trzeba sprawdzac. Spojrz na to (delphi): if msg=WM_SIZING then begin R:=POINTER(LParam); //zmienna R to PRect, czyli zwykły rect, ale jako wskaźnik If R^.bottom<=MinCY then R^.bottom:=MinCY; If R^.Right<=MinCX then R^.right:=MinCX; Result:=1; //w tym komunikacie należy zawsze zwrócić wartość true dla procedury okna end; Sprawdzasz tylko bottom i right recta, ktory jest wskazany w pamieci przez lparam. I jezeli bottom i right jest mniejsze lub rowna minimalnej wielkosci, jaka nas intersuje to caly czas przypisujemy jej wlasnie ta minimalna wiekszosc. Powyzszy kod to obrazuje. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
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.