Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Es gibt ja die Möglichkeit ein natives Fenster mit der WIN32 API zu erstellen mit CreateWindowEx aus der user32.dll und dann ein anderes Fenster als Owner deklarieren.
Wie würde man das Problem lösen, wenn ich bereits ein Fenster habe (ein Java-Fenster) inkl. seiner hWnd. Wie kann ich dann diesen Handler benutzen, um ein natives Fenster als owner zu deklarieren, ohne dabei ein neues Fenster mit CreateWindowEx zu erstellen?
Naja, ich benutze JNA und gelange über FindWindow auf das JFrame-Handle und will einen Owner dafür festlegen, sodass die z-Ordnung zwischen dem Owner und dem Java-Fenster immer gleich ist (das Java-Fenster soll das native Fenster overlappen).
Wäre es nicht schick, deine Frage/Problem richtig zu schildern, ohne um den heissen Brei herumzureden?
ich benutze JNA und gelange über FindWindow auf das JFrame-Handle und will einen Owner dafür festlegen, sodass die z-Ordnung zwischen dem Owner und dem Java-Fenster immer gleich ist
Genau das ist mein Problem, der Benutzer kann rumklicken und dann verliere ich die z-Ordnung. Ich kann doch bei CreateWindowEx(...) ein Fenster mit einem Owner erzeugen, kann man dann nicht einfach den Handle eines bereits erzeugten Fensters benutzen und einen Owner setzen?
Nett wäre auch, wenn mein Java-Fenster seine Position relativ zu der Owner-Position ändert, d.h. wenn ich den Owner bewege, dann soll das Java-Fenster sich mitbewegen.
Ich habe zwar eine Alternativlösung bereits erstellt, indem ich mein natives Fenster als parent und das Java-Fenster als child deklariere, erstellt. Hier wird der child auch mit dem Parent mitbewegt. Jedoch wird leider am Fensterrand des parent-Fensters geclippt und das will ich nicht.
Ggf. programmiere einen Hook und verwerfe alle Messages die an deine Fenster gesandt werden und eine Änderung bewirken.
Schade, ich hab da auch schon alle Funktionen angeschaut, und nichts Passendes gefunden. Deswegen diese Anfrage hier im Forum. Ich dachte, es gibt evtl. irgendwelche Tweaks, damit ich nicht in die Tiefen der Windows-Programmierung einsteigen muss, wenn es um ein so scheinbar einfach lösbares Problem geht.
Comment