CFileDialog Fensterposition ändern



  • Hallo zusammen,

    habe mal wieder ein Problem, und zwar möchte ich die Fensterposition eines CFileDialoges ändern. Habe gelesen, dass man hierzu eine neue Klasse benötigt.

    Habe also eine neue Klasse erstellt und diese von CFileDialog abgeleitet. Im OnInitDialog() wollte ich dann die neue Fensterposition mit der Funktion

    MoveWindow(-300,-500,0,0);
    

    setzen. Wenn ich die hintere zwei Werte zum Ändern der Fenstergröße änder, macht er dies auch. Nur wenn ich Werte zum verschieben des Fenster angebe, macht er dies komischerweise nicht.

    Könnt ihr mir hierbei weiterhelfen bzw. wisst ihr vll. eine andere Lösung zum Verschieben des Fensters?

    Gruß
    Flo


  • Mod

    Mit MoveWindow musst Du absolute Koordinaten angeben, keine relativen! Außerdem würde so der Dialog verschwinden, weil die Größe 0 ist.

    Nutze SetWindowPos, da kanst Du SWP_NOSIZE etc. angeben...



  • Ok, habe dies nun mit SetWindowPos probiert, allerdings tut sich hier auch nichts. Ich befürchte, dass er die Position von seiner Parent Window Position aus verschieben will, aber hierbei wird der FileDialog vermutlich sein eigenes Parent Window sein.

    Wie kann ich hier am besten vorgehen?



  • Hi,
    OnInitDialog() wird aufgerufen, nachdem alle Objekte erstellt sind und initialisiert diese. Also bevor die DialogBox angezeigt wird. Unmittelbar danach wird DoModal() oder Create() aufgerufen. Ich vermute mal, dass deshalb die Funktion in OnInitDialog nicht richtig arbeitet (Fenstergröße->ok, weil Initialisierung, WindowPos-> erst nach dem Anzeigen(?)).

    Mfg

    Wilfried


Anmelden zum Antworten