Form Width und Height vorm maximieren



  • Hallo,

    also ich speichere die Positionen, den WindowState und die Größe meiner Forms in einer xml Datei.

    Wie kann ich die Größe und die Position vorm maximieren bestimmen??? 😕

    tia



  • Hallo

    Du must jede Größenänderung verfolgen und zwischenspeichern. Wenn nach der Änderung WindowState = wxMaximized ist darfst du die alten Größenwerte nicht überschreiben.

    bis bald
    akari



  • Hallo,

    danke für die schnelle Antwort, doch so hab ich es auch schon probiert und das will net so recht funzen! 😡

    Habe unt x und y global deklariert und dann auf den OnResize Ereignis:

    Memo1->Clear();
    
    	if (WindowState == wsNormal)
    		{
    			x = Height;
    			y = Width;
    		}
    	else
    		{
    			Memo1->Lines->Add("Max");
    		}
    
    	Memo1->Lines->Add(x);
    	Memo1->Lines->Add(y);
    

    doch leider wird x und y nach den maximieren überschrieben d.h. WindowState wird erst nach der Routine OnResize gesetzt!

    tia



  • Hallo,

    so da hier immer noch keine Antwort eingegangen ist... hab ich's mal selbst gelöst! 😉

    Hier meine Lösung:

    Memo1->Clear();
    
    WINDOWPLACEMENT lpWnd;
    lpWnd.length = sizeof(WINDOWPLACEMENT);
    if (GetWindowPlacement(WindowHandle, &lpWnd))
      {
    	Memo1->Lines->Add("top");
    	Memo1->Lines->Add(lpWnd.rcNormalPosition.top);
    	Memo1->Lines->Add("left");
    	Memo1->Lines->Add(lpWnd.rcNormalPosition.left);
    	Memo1->Lines->Add("width");
    	Memo1->Lines->Add(lpWnd.rcNormalPosition.right - lpWnd.rcNormalPosition.left);
    	Memo1->Lines->Add("height");
    	Memo1->Lines->Add(lpWnd.rcNormalPosition.bottom - lpWnd.rcNormalPosition.top);
      }
    

    sollte jemand eine bessere Lösung haben... her damit 😋

    by



  • So,

    nochmal ne Frage zum Thema:

    lpWnd.rcNormalPosition.top != Top? Der unterschied ist 28?

    Warum den das schon wieder?

    Ist der unterschied bei jeden Windows OS zu meiner exe gleich, so das ich fest in meiner Funktion immer 28 dazu addiere wenn ich Top setze!? 😕

    tia


Anmelden zum Antworten