![]() |
Fremde Anwendung als MDI-Fenster starten
Ich bin gerade dabei eine Anwendung zu schreiben, die die Funktionalität einer anderen direkt kapselt. Dazu starte und hole ich mir die fremde Anwendung über
Delphi-Quellcode:
Soweit funktioniert das auch ganz gut, bis auf eine Kleinigkeit. Wechsel ich auf das eingefangene Fenster, verliert mein Hauptfenster den Focus und umgekehrt.
winexec('{cmdline}',SW_HIDE);
hwnd := 0; repeat hwnd := findWindow('{class}',nil); application.ProcessMessages; until hwnd <> 0; windows.SetParent(hwnd,Handle); showwindow(hwnd, SW_MAXIMIZE); Kann ich das eingefangene Fenster irgendwie nachträglich als MDI-Child meines Hauptfensters deklarieren? Vielleicht fällt euch ja was ein... ich seh nämlich vor lauter GW_STYLE und GW_EXSTYLE schon vor lauter Bäumen keinen Wald mehr :/ |
Re: Fremde Anwendung als MDI-Fenster starten
Alternativ könntest du als Parent ein eigens erzeugtes MDI-Child als Parent setzten!
Dann solltest du aber die Titelleiste des Originalfensters ausblenden sonst siehts doof aus! Greetz Boombuler |
Re: Fremde Anwendung als MDI-Fenster starten
Das ist nicht das Problem. Auch das Management nicht... nur dass ich, wenn ich in einem der eingefangenen Fenster was mach, den Focus vom Hauptfenster verlier sieht ein wenig doof aus... aktiv gibt es in dem Hauptfenster so wie so nicht viel zu machen, aber der Focus-Change irritiert..
Das hübscheste wäre wirklich, wenn ich die Fenster umbiegen könnt, so dass sie sich wie MDI-Fenster des Hauptfensters verhalten. Auf ein 'richtiges' MDI-Fenster pappen ist zumindest keine Lösung die sauber geht, sorry. |
Re: Fremde Anwendung als MDI-Fenster starten
Hi,
hab ein ähnliches Problem. Bist du in dieser Richtung etwas schlauer geworden? Zum Thema Fokuswechsel hab ich mir schon überlegt, je nach Mausposition den Fokus automatisch zu setzen. So á la X-Mouse (siehe Linux bzw. MS TweakUI) |
Re: Fremde Anwendung als MDI-Fenster starten
ich hab auch eine Frage bezüglich dieses Themas: Wie kann ich den style des eingebauten fenster auf "bsnone" setzen? ich hab gesucht, aber nichts gefunden, was funktioniert hätte...
|
Re: Fremde Anwendung als MDI-Fenster starten
so in die Richtung:
Delphi-Quellcode:
SetWindowLong(l_Form.Handle, GWL_STYLE, GetWindowLong(l_Form.Handle, GWL_STYLE) and WS_CHILD and not WS_BORDER and not WS_DLGFRAME and not WS_SYSMENU and not WS_THICKFRAME and not WS_GROUP);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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