Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#6

AW: Zuweisungs problem

  Alt 19. Aug 2020, 17:06
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:
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;
Wenn sich das Fenster ändert führe ich SizeMove aus.

Delphi-Quellcode:
    WM_SIZE, WM_MOVE, WM_WINDOWPOSCHANGED, WM_IME_NOTIFY:
      if Assigned(VisBassVis) then
        VisBassVis.SizeMove;
und beim start nachdem die Vis gestartet wurde.

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.

Preview:

Geändert von venice2 (19. Aug 2020 um 18:30 Uhr)
  Mit Zitat antworten Zitat