Как определить системные цвета

Есть два способа:

Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long

Private Const COLOR_SCROLLBAR = 0
Private Const COLOR_BACKGROUND = 1
Private Const COLOR_ACTIVECAPTION1 = 2
Private Const COLOR_ACTIVECAPTION2 = 27
Private Const COLOR_INACTIVECAPTION = 3
Private Const COLOR_MENU = 4
Private Const COLOR_WINDOW = 5
Private Const COLOR_WINDOWFRAME = 6
Private Const COLOR_MENUTEXT = 7
Private Const COLOR_WINDOWTEXT = 8
Private Const COLOR_CAPTIONTEXT = 9
Private Const COLOR_ACTIVEBORDER = 10
Private Const COLOR_INACTIVEBORDER = 11
Private Const COLOR_APPWORKSPACE = 12
Private Const COLOR_HIGHLIGHT = 13
Private Const COLOR_HIGHLIGHTTEXT = 14
Private Const COLOR_BTNFACE = 15
Private Const COLOR_BTNSHADOW = 16
Private Const COLOR_GRAYTEXT = 17
Private Const COLOR_BTNTEXT = 18
Private Const COLOR_INACTIVECAPTIONTEXT = 19
Private Const COLOR_BTNHIGHLIGHT = 20
Private Const COLOR_BUTTONDARKSHADOW = 21
Private Const COLOR_BUTTONLIGHTSHADOW = 22
Private Const COLOR_TOOLTIPTEXT = 23
Private Const COLOR_TOOLTIP = 24

Private Sub Command1_Click()
' Цвет заголовка активной формы (если заголовок градиентный, 
' то цвет его первой части)
MsgBox GetSysColor(COLOR_ACTIVECAPTION1)
End Sub
Если Вы не хотите использовать API, то можно поступить следующим образом. Добавьте на форму PictureBox и кнопку и введите следующий код:
Private Sub Command1_Click()
' Устанавливаем фоновый цвет Picture1 как цвет заголовка активной формы
Picture1.BackColor = vbActiveTitleBar
' Теперь цвет заголовка активной формы можно определить
' как цвет любой точки на Picture1
MsgBox Picture1.Point(0, 0)
End Sub
Hosted by uCoz