![]() |
Zuweisungs problem
Ich möchte in meiner Winproc lParam TWindowPos zuweisen finde die Lösung nicht.
Mein Fenster wird durch andere Anwendungen in der ZOrder verändert deshalb muss ich hier gegen wirken.
Delphi-Quellcode:
WM_WINDOWPOSCHANGING:
begin wp := TWindowPos(lParam); //... end; invalid TypeCast. |
AW: Zuweisungs problem
Das eine ist ein Record, das andere eine Ganzzahl.
Fällt der Groschen? |
AW: Zuweisungs problem
Zitat:
Oder meinst als PWindowPos definieren? (Scheint so) Denke du hast mich auf die Lösung gebracht. Danke |
AW: Zuweisungs problem
Was ist TWindowPos ?
So hol ich Koordinaten:
Delphi-Quellcode:
Hilft das weiter?
var pt: TPoint;
... pt.x := Word(lParam); pt.y := Word(lParam shr 16); |
AW: Zuweisungs problem
Zitat:
Wie ich diese bekomme ist mir klar. Danke! Ich benötige das HWND von wp.hwndInsertAfter.
Delphi-Quellcode:
so gehtswp: PWindowPos; //... WM_WINDOWPOSCHANGING: begin wp := @LParam; wp.hwndInsertAfter := GetWindow(VisRenderThread.ParentHandle, GW_HWNDNEXT); Result := 0; exit; end; |
AW: Zuweisungs problem
Wie sieht das aus.
Was ist falsch mein Programm oder das Programm welches die ZOrder meiner Anwendung verändert? Ich erstelle ein Window und setze dieses auf die nächste ZOrder meiner Anwendung.
Delphi-Quellcode:
Wenn sich das Fenster ändert führe ich SizeMove aus.
procedure TBassVis.SizeMove;
var InsertAfter: HWND; rc: TRect; begin if mVisParam.VisHandle <> 0 then begin InsertAfter := GetWindow(gG.MainHandle, GW_HWNDNEXT); SetWindowPos(mVisParam.VisContainerHandle, InsertAfter, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOOWNERZORDER or SWP_NOACTIVATE or SWP_ASYNCWINDOWPOS); GetWindowRect(HSprDisplayC, rc); MoveWindow(mVisParam.VisContainerHandle, rc.Left, rc.Top, rc.Right - rc.Left, rc.Bottom - rc.Top, false); end; end;
Delphi-Quellcode:
und beim start nachdem die Vis gestartet wurde.
WM_SIZE, WM_MOVE, WM_WINDOWPOSCHANGED, WM_IME_NOTIFY:
if Assigned(VisBassVis) then VisBassVis.SizeMove; Das Problem ist nun verwende ich Camtasia dann verdreht mir diese Anwendung die ZOrder. Das Programm scannt wohl alle Fenster der Anwendung verdreht dann aber die ZOrder bzw. setzt sie falsch warum auch immer. Wie kann ich dem gegenwirken. Meine Funktion wie ich mir das dachte funktioniert leider nicht. Vielleicht hat ja noch jemand einen Tip. EDIT: Ok geht jetzt. Ich schicke einfach ein WM_NCACTIVATE dann reorganisiert sich das wieder. So ein murks das andere Anwendungen sich da rein klemmen. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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