Własna maksymalizacja formy

0

Witam, mam taki problem. Mam formę borderstyle = false, i chciałbym miec możliwośc maksymalizacji jej w trakcie działania programu. Opcja:

Showwindow( form1.Handle,SW_MAXIMIZE); // oraz SW_SHOWMAXIMIZED

nie dziala jak należy, maksymalizuje formę na FULLSCREEN przykrywając także pasek start.

Czy da się jeszcze jakoś inaczej zmaksymalizować formę w sposób normalny, tak jak robimy to normalnie ikonkami systemowymi?
Pozdrawiam!

0

WindowState na wsMaximized?
Ewentualnie wyślij komunikat WM_SIZE z parametrem 3

Ale w temat wszedłem bo chciałem polecić Ci bieganie na zmaksymalizowanie własnej formy :/

0

wsmaximized to samo, daje mi fullscreen

0

Nie wiem na pewno, bo u mnie nawet ShowWindow działa prawidłowo (mam Windows XP i pasek zadań pozostaje widoczny) ale jeszcze możesz spróbować:

SendMessage(Form1.Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); //SC_RESTORE przywraca
1
var r:TRect;
begin
  r:=Screen.WorkAreaRect;
  Showwindow( form1.Handle,SW_MAXIMIZE);
  SetWindowPos(handle, 0, r.Left, r.Top, r.Right, r.Bottom, SWP_SHOWWINDOW);
end;
0
cimak napisał(a)
var r:TRect;
begin
  r:=Screen.WorkAreaRect;
  Showwindow( form1.Handle,SW_MAXIMIZE);
  SetWindowPos(handle, 0, r.Left, r.Top, r.Right, r.Bottom, SWP_SHOWWINDOW);
end;

Świetny pomysł i co najważniejsze działa :) Dzięki!

tak naprawde wystarczy tylko

var r:TRect;
begin
  r:=Screen.WorkAreaRect;
  SetWindowPos(handle, 0, r.Left, r.Top, r.Right, r.Bottom, SWP_SHOWWINDOW);
end;

Po co maksymalizować okno na maxa skoro SetWindowPos() i tak ustawia jego rozmiar taki jaki trzeba :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.