Titelleiste andersfarbig gestalten
-
Hi,
mal ne blöde Frage (kann keine anderen Stellen). Wie kann man die Titelleiste von der Farbgebung her anders gestalten (als diese dunkelblau ind hellblau gehende)? Und zwar nicht global über die Windowseinstellungen, sondern nur für ein Fenster!
Gruß
Al
-
HDC GetWindowDC( HWND hWnd // handle to window );
-
Hmm, danke erst ´mal für die Antwort. Aber wie kann ich die Farbe der Titelleiste damit ändern?
-
titelleiste abschalten in den form-optionen und dann musst du diese leiste selbst zeichnen. wird ziemlich schwierig das genauso hinzubekommen
-
Erstelle eine TCanvas-Instanz und weise diesem das wie oben ermittelte Handle zu. Anschliessend kannst du beliebig auf der CaptionBar herummalen. Siehe auch den entsprechenden FAQ-Beitrag unter "Forms".
-
GetWindowDC gibt den Gerätekontext mit der Titelleiste zurück. Du kannst mit API- Funktionen nun darauf rummalen oder ne Canvas- Instanz erzeugen, mit der du rummalst.
primitives Beispiel:
HDC hdc=GetWindowDC(Form1->Handle); TCanvas* FCanvas=new TCanvas; FCanvas->Handle=hdc; FCanvas->Brush->Color=clBlue; int TitelWidth=Width-ClientWidth; FCanvas->FillRect(TRect(3,3,ClientWidth,Height-ClientHeight-7));
delete FCanvas;
[ Dieser Beitrag wurde am 11.06.2003 um 13:34 Uhr von AndreasW editiert. ]
-
Hi Andreas,
hab Deinen Code ausprobiert. Liefert keine Fehlermeldung, die Titelleiste bleibt aber wie sie ist!
-
hm, habs getestet. Funzut einwandfrei.
Betriebssystem WIN 2000
BCB 6 Professional ( was eigentlich auch egal ist da API)
-
wo hast du das denn reingemacht. es muss in die paint routine deines fensters
-
Oh sorry, hatte vergessen, die Zeichenzeile mit einzufügen. Hmm, vielen Dank noch mal. Schade, dass die Titelleiste nich über entsprechende Eigenschaften ansprechbar ist!