WS_EX_TRANSPARENT - Was ist das eigentlich?
In meinem Projekt erstelle ich ein Formular mit der Deckkraft gesteuert durch den Benutzer. Wenn die form vollständig transparent, die Maus-Ereignisse 'fiel' (ohne meine intervention), da sonst meine form verarbeitet wurden.
Nach der Lektüre diese Frage und überschreiben der CreateParams-Eigenschaft der WS_EX_TRANSPARENT
fahne auf meinem Formular, es ermöglicht nun die Maus-Ereignisse, die fallen durch, wenn Sie die Deckkraft ist ein beliebiger Wert <255.
Dies ist genau das, was ich will, aber es beschäftigt mich, dass ich nicht verstehe, warum es funktioniert.
Von dem, was ich gelesen habe, WS_EX_TRANSPARENT gemeint ist, um die form transparent erscheinen von 'stealing bits' aus dem Formular unten in der Paint-Methode, daher:
-
Die Paint-Methode von meinem Formular und alle Steuerelemente in es sollte nie aufgerufen werden, richtig? Als WS_EX_TRANSPARENT sollte dazu führen, dass Windows Sie zu überschreiben, also warum Sie sich auf input-handling, aber nicht die Zeichnung meiner form?
-
Die Deckkraft sollte keine Auswirkungen auf die Behandlung von Maus-events, als wenn sich die Farbe überschrieben werden, die "lokale" Deckkraft sollte eigentlich egal sein, nicht?
Könnte mir jemand erklären, was diese fahne wirklich tut? Wie funktioniert es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
WS_EX_TRANSPARENT macht Ihre Ereignisse (wie Mausklicks) fallen durch das Fenster, unter anderem. Opazität ist ein separates Konzept, weist window-manager zum anwenden von Transparenz, wenn die Zeichnung Ihre form. Diese beiden Dinge sind nicht miteinander verwandt, aber wenn Sie kombinieren Sie Sie bekommen Sie den Effekt, den Sie brauchen, in Ihrem Fall.
Also:
Paint-Methode des Formulars aufgerufen wird normalerweise, wie es sollte, die Deckkraft hat nichts damit zu tun.
Deckkraft hat haben nichts zu tun mit Maus-events, wie in den ersten Absatz.
Er macht das Fenster unsichtbar zu Maus-Ereignissen, oder, wie Microsoft es ausdrückt - ist es nicht verdecken die Fenster. Ich glaube, dass es tatsächlich nicht stehlen Pixel aus dem Fenster, aber Windows selbst wird wahrscheinlich mischen Sie diese beiden Bilder zusammen mit der Ebene der Folie, die Sie angegeben.
Transparente Fenster kann nützlich sein, für das zeigen einige Fortschritte oder ein splash-screen, aber du wirst Programmieren müssen, um einen Weg, um Sie zu schließen, weil Sie nur auf das X wird nicht funktionieren, da die Maus klicken, wird passieren.
Also nicht nur, dass es ändern Sie die Ebene der visuellen Transparenz, aber es ändert das Verhalten auch. Ich Frage mich, wo du gelesen hättest sonst.
[Bearbeiten]
Nicht Windows in C# nur ein
opacity
Eigenschaft?