2010-03-15 13 views
5

Chcę, aby moje okno zawsze utrzymywało pewien stosunek np. 1,33333333. Jeśli więc okno ma wartość width = 800, height = 600, a użytkownik zmienia szerokość na 600, chcę automatycznie zmienić wysokość na 450.Jak zmusić okno do zachowania określonego stosunku szerokości do wysokości po zmianie rozmiaru

Już przechwytywam WM_SIZE, ale nie wiem, czy to wystarczy; także nie wiem, jak zmienić szerokość lub wysokość, aby utrzymać mój stosunek.

+0

Nieco inne pytanie, ale generalnie taka sama odpowiedź jak: http://stackoverflow.com/questions/2406168/constraining-window-position-to-desktop-working-area –

Odpowiedz

8

WM_SIZING jest wysyłany do okna, gdy użytkownik zmienia rozmiar okna.

Zamiast obsługiwać WM_WINDOWPOSCHANGING - ten jest wysyłany przez funkcję SetWindowPos wewnętrznego, gdy kod (lub użytkownik) zmiany rozmiaru okna i zapewni, że nawet dachówka & operacje kaskadowe przestrzegać politykę zaklejania.

+0

Działa idealnie; dzięki! – woor

0

Wypróbuj zdarzenie Resize. Istnieje przykład, jak utrzymać pożądany współczynnik proporcji w łączu.

+0

Nie używam .NET, a to .NET Wierzę, że:/ – woor

Powiązane problemy