Une couleur SystemColorConstants vers une couleur réelle en long

cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 30 janv. 2005 à 07:33
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 1 févr. 2005 à 06:12
Hello all

Pour utiliser une API, SetPixel, il faut que je transmette une couleur sous forme de LONG, mais je doit utiliser une couleur système, donc avec une SystemColorConstants (par ex vbButtonFace), mais le soucis c'est qu'elle est en hexa, et convertir en long ça donne un chiffre négtif !!! Apparament, faut faire une conversion spéciale mais j'ai aucune idée comment. Si quelqu'un a une idée, n'hésite pas à faire signe ;-) ...

@Z3RtY25 ==

2 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 janv. 2005 à 09:39
Const COLOR_SCROLLBAR = 0 'The Scrollbar colour
Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper
Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
Const COLOR_MENU = 4 'Menu
Const COLOR_WINDOW = 5 'Windows background
Const COLOR_WINDOWFRAME = 6 'Window frame
Const COLOR_MENUTEXT = 7 'Window Text
Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
Const COLOR_CAPTIONTEXT = 9 'Text in window caption
Const COLOR_ACTIVEBORDER = 10 'Border of active window
Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
Const COLOR_HIGHLIGHT = 13 'Selected item background
Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
Const COLOR_BTNFACE = 15 'Button
Const COLOR_BTNSHADOW = 16 '3D shading of button
Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
Const COLOR_BTNTEXT = 18 'Button text
Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
Const COLOR_BTNHIGHLIGHT = 20 '3D highlight of button
Const COLOR_2NDACTIVECAPTION = 27 'Win98 only: 2nd active window color
Const COLOR_2NDINACTIVECAPTION = 28 'Win98 only: 2nd inactive window color


Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long


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


Private Sub Command1_Click()
Dim c As Long
' pour Lire
c = GetSysColor(COLOR_ACTIVECAPTION)
' pour modifier
c = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255, 0, 0))
End Sub

Daniel
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
1 févr. 2005 à 06:12
Je te remercie, ça fonctionne bien

@Z3RtY25 ==
0
Rejoignez-nous