[MFC] Position von GetOpenFileName-Dialog

Onkel Schuppig

Erfahrenes Mitglied
Hallo!

Bei einer dialogbasierten MFC-Anwendung erscheint bei mir als erstes eine Fileselect-Box, die ich mittels GetOpenFileName() aufrufe.
Später kommen dann einige selbst definierte Dialog-Boxen und irgendwann wieder ein GetOpenFileName().
Merkwürdig: Die erste Fileselect-Box erscheint immer oben links auf dem Bildschirm. Die nachfolgenden (egal, welche) sind aber schön zentriert.
Ich hätte gerne grundsätzlich mittig. Kann man da was machen?

Gruß Onkel Schuppig
 
Beim normalen GetOpenFileName (nicht dem MFC-CFileDialog) musst du das über eine HookProc machen (kannst du im OPENFILENAME-struct angeben). Achtung, je nachdem, ob du OFN_EXPLORER hast, gibt es zwei Varianten der HookProc.

Der File-Dialog sendet ein CDN_INITDONE (in WM_NOTIFY), wenn er den Dialog fertig erstellt und alle Controls positioniert hat. Dann kannst du das Fenster zentrieren (noch ein Haken, bei OFN_EXPLORER bekommst du das eigentliche HWND des File-Dialogs über GetParent).
 

Neue Beiträge

Zurück