Warum ist der Fensterrahmen meiner Anwendung in Windows 8 grau hinterlegt, anstatt wie andere Fenster auf dem Desktop zu basieren?

8

Ich habe eine große Legacy-Anwendung, die auf jedem Windows 8-Rechner, auf dem wir sie ausführen, mit einem ständig grauen Rand angezeigt wird, während die anderen Fenster für andere Apps genau eine vom Desktop-Hintergrund abgeleitete Farbe verwenden. Für das Leben von mir kann ich nicht herausfinden warum.

Ich habe mein Bestes Google-Fu versucht, MSDN für APIs zu crawlen, um dies zu kontrollieren, kam aber leer. Die App sieht aus wie alle anderen in Windows XP, Vista und 7 ... nur Windows 8 ist grau in der Farbe. Wir haben definitiv keinen speziellen Win8-Code hinzugefügt, um dies anders zu behandeln.

Es ist nur ein MFC-Fenster auf der Außenseite, aber darin eingebettet eine .NET / WPF-Komponente und einen Direct3D 9-fähigen visuellen Bereich.

Meine beste Vermutung ist, dass es irgendwie mit einer Direct3D-Oberfläche im Fenster zusammenhängen könnte, aber ich konnte das nirgendwo bestätigen.

Jede Hilfe würde sehr geschätzt werden!

Danke

Bearbeiten: Das Grau stimmt mit dem Effekt überein, dass es keinen Fokus gibt, und wir spielen definitiv Spiele mit Fensterfokus ... so könnte es sein.

    
SentientAI 01.12.2012, 00:47
quelle

2 Antworten

2

Das Problem war, dass ein Entwickler OnNcActivate () überlastete und am Ende TRUE zurückgab. Sie mussten stattdessen die BaseClass (CWnd) OnNcActivate aufrufen.

Dies war auch auf Windows 7 sichtbar, wenn Sie nah genug schauten.

    
SentientAI 31.01.2013, 22:25
quelle
1

Der Desktop in Windows 8 verwendet keine Transparenz in Fensterrahmen wie Windows 7 und Vista mit den Aero-Designs. Wenn Sie den Fokus auf ein anderes oberes Fenster in Ihrer App verschieben, könnte dies erklären, warum Sie den grauen Rahmen sehen. Versuchen Sie, die Farben für Fenster ohne den Fokus auf etwas zu ändern, das von Grau erkennbar ist, um zu überprüfen, dass das, was Sie sehen, ist.

    
borrillis 30.01.2013 23:23
quelle

Tags und Links