Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#1

Wm_windowposchanging

  Alt 29. Mär 2013, 15:01
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!
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat