3 Stimmen

WS_EX_LAYERED colorkey - Probleme mit Vista

Wir platzieren unser transparentes Anwendungsfenster über dem Fenster eines anderen Prozesses. Unser Fenster enthält einige untergeordnete Steuerelemente. Wir erstellen ein WS_EX_LAYERED-Fenster und verwenden Colorkey für selektive Transparenz. Das Hauptfenster ist vollständig transparent, so dass es nur als Container für die untergeordneten Steuerelemente dient.

Dies funktioniert gut bei XP und Vista ohne Aero . Allerdings ist am Vista mit Aero Die Klicks gehen nicht durch den transparenten Bereich. Was können wir tun?

Die Verwendung von WS_EX_TRANSPARENT schlägt fehl, da unsere eigenen Steuerelemente dadurch natürlich nicht funktionieren.

Ich habe in Betracht gezogen, das übergeordnete Fenster (WS_SHOWWINDOW) auszublenden, aber ich bin ziemlich sicher, dass das alle Kinder ausblenden wird, und AFAIK die Größe des Fensters auf eine minimale Größe, mit einer beliebigen Kombination von CLIPCHILDREN & CLIPSIBLINGS würde in ähnlicher Weise fehlschlagen...

Danke für jede Hilfe.

2voto

Anders Punkte 89514

Eine andere Möglichkeit besteht darin, einen Fensterbereich zu verwenden und nicht WS_EX_LAYERED

0voto

unixman83 Punkte 8807
  • WS_EX_LAYERED behandelt Grafische Darstellung Fenster-Transparenz, die Klickrate ist nur ein Nebeneffekt die auf älteren Windows-Betriebssystemen funktioniert haben.
  • WS_EX_TRANSPARENT macht die Maus transparent . Grafische Transparenz ist nicht gesichert mit dieser Flagge. Sie müssen die Steuerelemente (mit GDI-Funktionen) manuell zeichnen (wie in einer DirectX-Anwendung) und die Cursorposition mit einem Low-Level-Hook abfangen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X