2016-08-09 11 views
-2

Ich möchte die Farben in meiner Software ändern. Meine Recherchen führten mich zur SetSysColor() Funktion. Das Problem mit dieser Funktion ist, dass jede Software auf dem Computer von der Änderung betroffen ist, nicht nur die ausführbare Datei, die ich ändern möchte.Begrenzt SetSysColor auf eine Anwendung

Gibt es eine Möglichkeit oder eine Alternative, die von meiner Anwendung verwendete Farbpalette zu ändern, ohne alles manuell neu zeichnen zu müssen?

+3

Sie könnten eine Theming-Bibliothek verwenden –

+0

Leider ist es keine Option für mich – Pumkko

+1

Rollen Sie Ihre Ärmel dann und benutzerdefinierte malen Ihre App. –

Antwort

1

In einigen Fällen kann die Verwendung von benutzerdefinierten Farben in der Tat nützlich sein (Hervorhebung, Benachrichtigungen, Farbcodierung usw.); Übertreib es einfach nicht. Es gibt bestimmte Möglichkeiten in WinAPI (normalerweise auch in MFC - über Ereignisse oder direkte Windows-Nachrichtenhandler), die das Aussehen Ihrer Anwendung anpassen können. Sehen Sie in die Dokumentation für selbst erstellte Steuerelemente, benutzerdefinierte Steuerfarben, Windows-Klassenpinsel, Meldungen wie WM_CTLCOLOR und WM_ERASEBKGND. Sie können auch die Darstellung des Nicht-Clientbereichs eines Fensters (z. B. Titelleiste, Rahmen usw.) anpassen, obwohl sich dies ändert das Aussehen Ihrer App viel drastischer. Siehe Nachrichten wie NC_PAINT und NC_HITTEST.