Hintergrundfarbe in Win32-Consolen
-
Nun, ich weiß das es nur wenige Farben in der console gibt, die man z.B. über SetConsoleTextAtribut(); einstellen kann.Aber wenn ich jetzt eine win32-console starte und auf einstellungen gehe, kann ich Rot/Grün/Blau jeqeils bis zu 255 erhöhen oder ernidrigen, je nach dem kommt eine andere Farbe raus.Also ich kann wie in meinem Farbkasten die Fargen mischen.Warum kann ich das nicht über meinem c++ code machen ?
-
Erniedrigen tut man normalerweiße nicht, aber:
In der Registry unter HKEY_CURRENT_USE/Console gibt es einige Attribute, die vielleicht interessant sein könnten.
-
Ich weiß nicht ob man da irgendwie API-mäßig bereits drankommt. Ich hoffe im WinAPI-Forum ist ein WinAPI-Insider der dir weiterhelfen kann. Hier sieht's nicht so aus als wüsste das jemand.
MfG SideWinder
-
Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Prinzipiell kann ein Fenster unter Windows natürlich viele Farben nutzen.
Den Handle auf das Fenster besorgen wäre nicht schwer:Getting the HWND and HINSTANCE of the Console Window
http://bobobobo.wordpress.com/2008/02/03/getting-the-hwnd-and-hinstance-of-the-console-window/
siehe: http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx
also konkret:
HWND hwnd = GetConsoleWindow();
sowie
HINSTANCE hInstC = GetModuleHandle( 0 ) ; // HMODULE=HINSTANCE
Da kommt man aber nun aber nicht leicht weiter, da das Fenster ja bereits auf
Basis einer Fensterklassse erstellt ist:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633570(v=vs.85).aspx
Also WM_CREATE ist schon erledigt und das Neuzeichnen des Fensters findet
z.B. in WM_PAINT statt. Der Hintergrund wird dabei von hbrBackground
definiert. Man müste also die zuständige WinProc ändern, oder ihr eine Nachricht
schicken das sie was macht. Auch WM_ERASEBKGND würde sich wohl zusändig fühlen.Wenn man das Konsolenfenster nicht selbst erzeugt, kommt man da nur schwer
weiter ...
-
Mehr Freiheitsgrade als die "Defaultconsole" bringt evtl.
Windows console window enhancement auf SourceForge