![]() |
SHBrowseForFolder falsche Größe
Hallo Delphianer,
ich versuche die Größe des SHBrowseForFolder zu anzupassen bzw. zu zentrieren und ermittle im BrowseCallbackProc -> BFFM_INITIALIZED mit Hilfe von GetWindowRect die aktuelle Größe des Dialogs. Allerdings liefert mir GetWindowRect falsche Werte in Rect.Right und Rect.Bottom zurück. Ich habe einen Screenshot gemacht und mit Hilfe von MS-Paint "ausgemessen". Right und Bottom sind falsch, Left und Top stimmen. :gruebel: Right und Bottom brauche ich aber um die Breite und Höhe ermitteln zu kömmen, um letztendlich den Dialog ins Zentrum zu kriegen. Das Ganze hat so lang korrekt funktioniert, so lang ich die (Standard-) Größe des Dialogs NICHT verändert habe. Jetzt habe ich per Maus den Dialog größer gezogen (in dem winzigen Dialog wird man ja blöde, wenn sich durch Verzeichnisse klickt :zwinker:) und seit dem funktioniert das Zentrieren nicht mehr, weil GetWindowRect falsche Werte liefert. Wieso? Wo könnte ich anfangen das Problem zu suchen? D2009 unter Win2003 |
AW: SHBrowseForFolder falsche Größe
Vermutung: In BFFM_INITIALIZED wird der Dialog noch initialisiert und es steht noch nicht alles fest.
Wie im TForm, wo du im Create/OnCreate machen kannst was du willst, da die "automatische" Größe/Position erst im Show/ShowModal bestimmt wird. |
AW: SHBrowseForFolder falsche Größe
Hmm .. die Vermutung könnte wohl richtig sein.
Allerdings interpretiere ich BFFM_INITIALIZED als bereits erledigt. Auch das ![]() Was allerdings nicht aussagt, dass deine Vermutung nicht doch korrekt ist :wink: |
AW: SHBrowseForFolder falsche Größe
Nja, in Delphi ist die TForm nach dem Create auch initialisiert, aber beim Show wird halt noch die Ausrichtung vorgenommen.
Vielleicht bekommst du ja noch ein WM_SHOWWINDOW/WM_SIZE/WM_MOVE-Ereignis, oder irgendwie sowas, auf das du reagieren könntest? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz