Ich habe eine MDI-Anwendung in C++ geschrieben, die unter Windows XP gut aussieht. Alle untergeordneten MDI-Fenster sehen schließlich wie ihr übergeordnetes Fenster aus. Nett. Unter Windows 7 (und wahrscheinlich Vista) haben die Elternfenster jedoch Aero-Glas, und die untergeordneten Fenster sind diese scheußliche, unveränderliche, babyblaue Farbe (wie das Windows 7 Basic-Thema). Meine Bewerbung sieht also sehr, sehr schlecht aus.Ändern der Farbe von MDI Kind Windows unter Windows 7
Sie können das gleiche hässliche Verhalten sehen, indem Sie Office 2003 starten und versuchen, MDI-Unterfenster (möglicherweise in Excel) zu betrachten. Office 2007 hat jedoch tatsächlich drei Farbthemen - Blau, Silber und Schwarz. Diese Themen werden irgendwie zu den unterordneten MDI-Fenstern in Excel weitergeleitet.
Ich weiß nicht, wie Microsoft dies in Office 2007 tut. Ich würde gerne den Trick kennen. Ich muss die Zeichnung meiner MDI-Unterfenster haken und übernehmen und replizieren, was das Office 2007-Team abgezogen hat. Das Problem ist, dass ich alle DrawTheme * -Aufrufe verwenden möchte, damit ich die Verläufe und abgerundeten Kanten und Schaltflächen alle richtig gezeichnet bekomme. Und alle diese Systemaufrufe benötigen ein Handle zu einem Thema. Es scheint jedoch nicht möglich zu sein, SetWindowTheme beispielsweise zu verwenden, um das Farbschema eines anderen Themas zu verwenden. Zumindest soweit ich das beurteilen kann.
Wer weiß, wie Microsoft dies erreicht?
Ich hasse es wirklich so etwas zu tun, da es die GUI-Standards verletzt, aber ich hätte nicht einmal daran denken müssen, wenn Microsoft die Farben von MDI-Kindern unter Windows 7 anpassen könnte. – dsmtoday