WinAPI Kopf und Ränder Färben

Xebov

Mitglied
Hi

Ich beschäftige mich zzt mit WinAPI und bin dabei auf eine Frage gestoßen, ich kann ja den Hintergrund frei nach meiner Idee einfärben aber was ist mit dem Rand und dem Kopf des Programms? Gibts dafür auch einen Farbbefehl?

MFG
Xebov
 
Jein. Das sind die NC (non-client)-Bereiche der Fenster. Die werden von der DefWindowProc mit den Systemfarben dargestellt. Es gibt zwar eine WM_NCPAINT-Nachricht, die kannst du auch abfangen, allerdings musst du dann alles komplett zeichnen (also Rahmen,Rahmenfarbe,Abstufungen). Nur einzelne Teile des Fenster-Rahmens kannst du so nicht ändern.
Zusätzlich gibt's mit der Caption (die Titelleiste) noch ein paar Haken: Die wird auch auf WM_NCACTIVATE und WM_ACTIVATE hin abgeändert (etwas inkonsistent in der API). Und da gibt's die Buttons drauf zum Minimieren/Maximieren/Schliessen (plus Systemmenü).
Es gibt allerdings ein paar Helfer: DrawCaption und DrawFrameControl.

Ich hab das mal spasshalber nachgebaut, und fast das ganze Handling von Windows nachgebildet. Das ist ganz schön aufwendig. Ich bin mir nicht sicher, ob du das willst.
 
Ne das is etwas aufwendiger als ich dachte, dachte dafür gibts nen einfachen Befehl zum umlackieren. Aber danke dir für die ausführliche Antwort.
 
moin


Es gibt aber noch die Möglichkeit Fenster im Win XP Stil darstellen zu lassen. Wenn du WinXP hast.


mfg
umbrasaxum
 
moin


Ist auch zum kotzen ;)
Wie wäre es ein POPUP Windows zu erstellen, eine Zeichnung zu laden, die wie ein Rahmen und Titelleiste aussieht und das dann als Fenster zu nehmen.


mfg
umbrasaxum
 
Klingt gut, war aber ohnehin erstmal nur eine Hypotetische Frage weil ich mich gewundert hatte das es für den Hintergrund nen Befehl gibt und mehr nicht. Hätte da aber mal noch ne andere Frage, ich arbeite zzt an einem Programm und wollte mal wissen ob das geht was ich mir denke. Kann ich mehrere Buttons übereinander legen und immer nur einen den Rest unsichtbar? Ich will ein Programm mit 3 Funktionen Schreiben die jeweils Buttons und Felder benötigen. Die 3 Buttons sollen nebeneinander sein, aber der Platz darunter soll von allen 3 Funktionen genutzt werden, nur das eben immer nur die Buttons einer Funktion sichtbar sind. Funktioniert so eine mehrfachbelegung von Platz?

MFG
Xebov
 
moin


Ja das geht.
Wenn du die Buttons erstellst, bekommst du ja ein Handle zum Button.
Mittels diesem Handle und ShowWindow() kannst du die unsichtbar oder sichtbar machen.


mfg
umbrasaxum
 
Zurück