Rubrik: Grafik und Font · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 22.05.01 |
RGB-Werte einer System-Farbe Bestimmung der RGB-Werte einer beliebigen Farbe (auch Systemfarben) | ||
Autor: Torsten Kerz | Bewertung: | Views: 17.567 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Die folgende Funktion ermöglicht es, auch von Systemfarben (z.B. Konstante vb3dFace) die RGB-Farbanteile zu ermitteln. Somit ist es z.B. leicht möglich, Schatten von Steuerelementenimmer in einer passenden Farbe darzustellen.
Hierzu einfach die zurückerhaltenen Werte etwas abdunkeln und somit eine neue Farbe generieren.
' zunächst die benötigten API-Deklarationen Private Declare Function GetSysColor Lib "user32" ( _ ByVal nIndex As Long) As Long Public Type typRGB Red As Integer Green As Integer Blue As Integer End Type Public Function RGBColor(ByVal Color As OLE_COLOR) As typRGB ' ------------------------------------------------------ ' Abfragen einer Farbe ' ------------------------------------------------------ If (Color And &HFF000000) = &H80000000 Then _ Color = GetSysColor(Color And &HFFFFFF) RGBColor.Red = (Color And &HFF&) RGBColor.Green = (Color And &HFF00&) / &H100 RGBColor.Blue = (Color And &HFF0000) / &H10000 ' ------------------------------------------------------ End Function
Bsp.: Darstellen eines abgedunkelten Schatten...
Private Sub Form_Load() Dim Color As typRGB Color = RGBColor(Command1.BackColor) Color.Red = Color.Red / 2 Color.Blue = Color.Blue / 2 Color.Green = Color.Green / 2 ' Shape autom. positionieren With Command1 Shape1.Move .Left + 45, .Top + 45, .Width, .Height End With ' Eigenschaften + Schattenfarbe (Füllfarbe) With Shape1 .BorderStyle = 0 .BackStyle = 1 .BackColor = RGB(Color.Red, Color.Green, Color.Blue) End With End Sub