2012-12-01 3 views
8

Ich habe eine große Legacy-Anwendung, die mit einem ständig grauen Rand auf jedem Windows 8-Rechner, auf dem wir es ausführen, angezeigt wird, während die anderen Fenster für andere Anwendungen genau eine vom Desktop-Hintergrund abgeleitete Farbe verwenden. Für das Leben von mir kann ich nicht herausfinden warum.Warum ist der Fensterrahmen meiner Anwendung in Windows 8 grau, anstatt wie andere Fenster auf dem Desktop zu basieren?

Ich habe mein Bestes Google-Fu versucht, MSDN für APIs zu crawlen, um dies zu steuern, aber kam 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 eine 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!

Dank

Edit: Die graue den Effekt der nicht mit Fokus entspricht, und wir tun definitiv Spiele mit Fenster Fokus spielen ... so dass es sein könnte.

+0

Ich habe keine Lösung dafür. Es ist ein bekanntes Problem seit einiger Zeit: http://stackoverflow.com/questions/12946642/problems-using-cdialogex-class-that-get-solved-using-cdialog-class-instead – cha

+0

Wir können verschiedene Probleme haben. Ich erben nicht von CDialogEx und wenn ich minimiere/wiederherstelle, ist die Farbe für mich immer noch grau. – SentientAI

Antwort

2

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

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

1

Der Desktop in Windows 8 verwendet keine Transparenz in Fensterrahmen wie Windows 7 und Vista mit den Aero Themes. 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 zu ändern, ohne den Fokus auf etwas zu richten, das von Grau erkennbar ist, um zu überprüfen, dass es das ist, was Sie sehen.