[C++] Wie ändert man die Farbe eines FlowLayoutPanel-Schiebebalkens?
Ich habe ein Kleines Gui mit C++ und dem CLI "Unterstützungs-/Buildingtool" gebaut. Jedoch ist der "Schiebebalken", ich habe keine Ahnung wie man das Ding nennt, leider Hell-Grau und nicht dunkel. Gibt es eine Möglichkeit diese Balkenfarbe zu ändern?
Mein Gui ist eher dunkel gehalten, der "Schiebebalken" fällt da halt extrem auf. Hat einer eine Idee?
MfG :-)
1 Antwort
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
(...) ich habe keine Ahnung wie man das Ding nennt (...)
Bildlaufleiste bzw. Scrollbar.
Gibt es eine Möglichkeit diese Balkenfarbe zu ändern?
Ich habe nun nicht explizit nachgeschaut, doch ich vermute, dass die Leiste ebenso wie bei anderen Windows Forms-Komponenten intern mit Hilfe der Win32-API gezeichnet wird.
Du kannst dir einmal die folgenden beiden Lösungen anschauen. Sie implementieren jeweils eine eigene, anpassbare Scrollbar (allerdings mit C# / VB.NET).
- https://www.codeproject.com/Articles/14801/How-to-skin-scrollbars-for-Panels-in-C
- https://gist.github.com/ahmedosama007/c1b0cd327d395a5698c1e17e96d0f8f9
Ansonsten kannst du auch versuchen, die Standardleiste mittels des AutoScroll-Properties zu verstecken (false) und dann die separate ScrollBar-Komponente hinzuzufügen. Diese besitzt Properties zum Definieren von Vorder- und Hintergrundfarbe. Das Scroll-Event bräuchte einen Ereignishandler, welcher die Scrollposition des Panels auf die der ScrollBar-Komponente setzt.
Beispiel für eine vertikale Scrollbar:
panel.VerticalScroll.Value = scrollbar.Value;