Fenster wird bei Winmove nicht neugemalt

  • Manche von euch wissen sicher was ich meine, sobald man Winmove nutzt um ein Fenster zu vergrößern von einem fremden Programm zeichnet dieses seine Oberfläche nicht neu, erst wenn man selber am Fensterrand kurz zieht mit der Maus aktualisiert es.
    Gibt es einen Weg ein Fenster in der größe zu ändern so das es auch genau so funktioniert wie beim klassichen mit der Maus ziehen, oder villeicht die Möglichkeit dem Fenster die Nachricht zu schicken nach einem Winmove das es weiß ok ich muss aktualisieren.

    Edit: ich denke mit BeginDeferWindowPos, DeferWindowPos und EndDeferWindowPos aus der WinApiEx UDF sollte es gehen aber irgendwie bekom ich es nicht hin kann mir jemand ein Beispiel mit den Funktionen zeigen?

    Einmal editiert, zuletzt von Tyzer (18. September 2015 um 16:30)

  • Hab mir nun selber eine Funktion gebastelt :)
    trotzdem danke, falls es wer braucht

    Edit: Das Fenster wird nun zwar verkleinert und auch neu gezeichnet allerdings werden die mausklicks immernoch so berechnet als wenn das fenster die vorherige größer hätte, jemand eine Idee? ich denke man muss noch eine andere flag bei $SWP_DRAWFRAME hinzufügen

    Einmal editiert, zuletzt von Tyzer (18. September 2015 um 16:54)

  • Was solls ich habs jetzt einfach billig mit Mouseclicks gemacht.

  • AutoIt
    #include <winapi.au3>
    #include <WindowsConstants.au3>
    
    
    Sleep(5000)
    
    
    $hWindow = WinGetHandle(WinGetTitle(""))
    _WinAPI_MoveWindow($hWindow, 0, 0, 518, 395, True)

    Funktioniert bei mir bei 24 von 24 getesteten Fenstern. ;)

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.