Announcement

Collapse
No announcement yet.

Window Overlay

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Window Overlay

    Hallo!

    Wie kann ich ein Fenster erstellen, das immer über einem anderen in der z-Ordnung liegt und dabei kein Child ist?

  • #2
    Du meinst rein mit der WIN 32 API

    http://pbeblog.wordpress.com/2008/03...ting-a-window/
    Christian

    Comment


    • #3
      Hallo!

      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?

      Danke.

      Comment


      • #4
        Ein Javafenster hat kein direktes sichtbares Handle. Es ist bsp vom Typ JFrame, JDialog oder was auch immer du für ein Framework benutzt.

        Insofern verstehe ich dein Problem nicht
        Christian

        Comment


        • #5
          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).

          Comment


          • #6
            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
            Fein, dann mach das
            Christian

            Comment


            • #7
              Aber wie kann ich jetzt das native Fenster als Owner für mein Java-Fenster deklarieren? Ich habe von beiden Fenstern den Handler.

              Comment


              • #8
                http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

                Das bleibt wohl nicht erhalten, weil der Anwender ja klicken kann oder mal

                http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
                probieren
                Christian

                Comment


                • #9
                  Originally posted by Christian Marquardt View Post
                  http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

                  Das bleibt wohl nicht erhalten, weil der Anwender ja klicken kann oder mal

                  http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
                  probieren

                  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.

                  Comment


                  • #10
                    Sehe hier nicht, wie man einen neuen Owner setzen kann

                    http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

                    Ggf. programmiere einen Hook und verwerfe alle Messages die an deine Fenster gesandt werden und eine Änderung bewirken.
                    Christian

                    Comment


                    • #11
                      Originally posted by Christian Marquardt View Post
                      Sehe hier nicht, wie man einen neuen Owner setzen kann

                      http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

                      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.

                      Trotzdem dank dir!

                      Comment

                      Working...
                      X