vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · Sonstiges   |   VB-Versionen: VB4, VB5, VB622.05.01
RGB-Werte einer System-Farbe

Bestimmung der RGB-Werte einer beliebigen Farbe (auch Systemfarben)

Autor:   Torsten KerzBewertung:  Views:  17.567 
ohne HomepageSystem:  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...

CommandButton mit Schatten
Die rechte Abbildung zeigt, wie man ganz leicht einen CommandButton mit einem zusätzlichen dunklen Schatten versehen kann.

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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.