VB 5/6-Tipp 0024: Systemfarben auslesen und ändern
von ActiveVB
Beschreibung
Um die Systemfarben zu ermitteln und um diese anschließend zu ändern ist diese Rountine hervorragend geeignet
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- ' Die Komponente 'Microsoft Common Dialog Control 6.0 (SP3) (COMDLG32.OCX)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Standarddialog-Steuerelement "CommonDialog1" ' Steuerelement: Beschriftungsfeld "Label2" (Index von 0 bis 0) ' Steuerelement: Beschriftungsfeld "Label1" (Index von 0 bis 0) Option Explicit Private Declare Function GetSysColor Lib "user32" _ (ByVal nIndex As Long) As Long Private Declare Function SetSysColors Lib "user32" _ (ByVal nChanges As Long, lpSysColor As Long, _ lpColorValues As Long) As Long Private CNum As Collection Private CNam As Collection Private CWrt As Collection Private Sub Form_Load() Dim I% Dim xSPC&, ySPC&, X1&, X2&, Y& Const xGAP = 240 Const yGAP = 30 Set CNum = New Collection Set CNam = New Collection Set CWrt = New Collection '### Liste mit Konstanten füllen For I = 0 To 20 CNum.Add I Next I CNum.Add 100 CNum.Add -100 '### Liste mit Erläuterungen füllen CNam.Add "Scrollbalken" CNam.Add "Desktop Hintergrund" CNam.Add "Aktive Titelleiste" CNam.Add "Inaktive Titelleiste" CNam.Add "System Menü" CNam.Add "Fenster Hintergrund" CNam.Add "Windows Rahmen" CNam.Add "System Menü Text" CNam.Add "Windows Text" CNam.Add "Titelleisten Text" CNam.Add "Aktiver Rahmen" CNam.Add "Inaktiver Rahmen" CNam.Add "Anwendumgensraum" CNam.Add "Hintergrund markierter Text" CNam.Add "Markierter Text" CNam.Add "Schaltflächen" CNam.Add "Schaltflächen zurückliegend" CNam.Add "Grauer Text" CNam.Add "Schaltflächentext" CNam.Add "Inaktiver Titelleisten Text" CNam.Add "Schaltflächen herrausragend" CNam.Add "Maximal" CNam.Add "Minimal" '### Systemfarben auslesen For I = 1 To CNam.Count CWrt.Add GetSysColor(CNum(I)) Next I '### Farben auf dem Form arrangieren ySPC = Label2(0).Height + yGAP xSPC = Label1(0).Left + Label1(0).Width _ - Label2(0).Left + xGAP Y = Label1(0).Top X1 = Label1(0).Left X2 = Label2(0).Left For I = 1 To CNam.Count Load Label1(I) With Label1(I) .Left = X1 .Top = Y .Caption = CNam(I) .Visible = True End With Load Label2(I) With Label2(I) .Left = X2 .Top = Y .BackColor = CWrt(I) .Visible = True End With If I Mod 12 = 0 Then X1 = X1 + xSPC X2 = X2 + xSPC Y = Label1(0).Top Else Y = Y + ySPC End If Next I '### Form in der Größe anpassen Me.Width = Label1(CNam.Count).Left + _ Label1(CNam.Count).Width Me.Height = Me.Height - Me.ScaleHeight + _ Label2(12).Top + Label2(12).Height _ + 120 End Sub Private Sub Label2_Click(Index As Integer) '### Farbe auswählen CommonDialog1.Color = CWrt(Index) CommonDialog1.Color = Label2(Index).BackColor CommonDialog1.ShowColor '### Farben ändern Call SetSysColors(1, CNum(Index), CommonDialog1.Color) Label2(Index).BackColor = CommonDialog1.Color End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Hugo am 28.01.2010 um 19:23
Fals man die übrigen Farben auch haben möchte, kann man sie aus der Registrierung auslesen.
Sie stehen hier: "HKEY_CURRENT_USER\Cotrol Panel\Colors"
Kommentar von Jonathan am 03.12.2003 um 13:34
Schöner Tipp
Allerdigns sind nicht alle Farben aufgeführt (2. Titelleistenfarbe), und die Beschriftungen sind z.T. unverständlich (Minimal z.B.)
Kommentar von F.Doerr am 16.11.2003 um 14:37
Damit die Farbe im FarbDialog auch ausgewählt ist, muss man die "Sub Label2_Click" noch wie folgt ergänzen.
Private Sub Label2_Click(Index As Integer)
'### Farbe auswählen
CommonDialog1.Flags = cdlCCRGBInit
MfG
F.Doerr