Hallo Kollegen,
wie die meisten von Euch wissen, kann man auf die Änderung der Fensterdimensionen (
Move und
Resize) so reagieren:
procedure WMWindowPosChanging(var AMessage: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
.
Die Message überbringt einen Pointer auf eine Struktur, in der die neuen Dimensionen stehen.
Delphi-Quellcode:
AMessage.WindowPos^
... zeigt auf ...
tagWINDOWPOS = packed record
hwnd: HWND;
hwndInsertAfter: HWND;
x: Integer;
y: Integer;
cx: Integer;
cy: Integer;
flags: UINT;
end;
.
Ich habe mir gezwungenermassen den Spaß gemacht und nachgesehen, welche Werte in der Struktur stehen und staunte nicht schlecht: in ca. 5% der Fälle steht beim
Resize in x, y fälschlicherweise Null (in Zahlen: 0).
Kennt vllt jmd die Antwort, warum das so ist?
Wie immer danke für alle Ideen!