OVH Cloud OVH Cloud

Couleur des Menus ?

13 réponses
Avatar
Fr
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais l'option
Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre d'OCX
dans mo programme.

Merci.

10 réponses

1 2
Avatar
LE TROLL
Salut, à ma connaissance réduite en la matière, les objets de base ne permettent
pas de colorier les menus :o)


"" a écrit dans le message de news:
430c6b08$0$1730$
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais l'option
Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre d'OCX dans
mo programme.

Merci.



Avatar
LE TROLL
"" a écrit dans le message de news:
430c6b08$0$1730$
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais l'option
Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre d'OCX dans
mo programme.

Merci.



Avatar
LE TROLL
Suite, j'ai oublié, faut de mieux, tu peux mettre des boutons de couleur pour
simuler la coloration d'un menu (la ruse, y a que ça), lol... Mais peut être que
tout à l'heure quelqu'un apportera une solution???


"" a écrit dans le message de news:
430c6b08$0$1730$
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais l'option
Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre d'OCX dans
mo programme.

Merci.



Avatar
Christian Hubert-Hugoud
Tu peux le faire, mais cela est très complexe. Il faut faire du subclassing
et le code est mahousse.

Christian


"LE TROLL" <le a écrit dans le message de news:

Salut, à ma connaissance réduite en la matière, les objets de base ne
permettent pas de colorier les menus :o)


"" a écrit dans le message de news:
430c6b08$0$1730$
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais l'option
Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre d'OCX
dans mo programme.

Merci.







Avatar
Guy DETIENNE
Salut ;O)

En effet, modifier l'apparence des menus n'est pas chose facile.
Subclassing, API, etc...
Dur dur boulot !

Afin de ne pas te lancer dans une programmation ardue, je te propose le lien
suivant.
Tu y trouveras entre autres un contrôle (ActiveX) très très bien fait (très
pros) et très stables, et qui plus est gratuits !

SmartMenuXP Control
http://www.visual-basic.com.ar/vbsmart/library/smartmenuxp/smartmenuxp.htm

Ty y trouveras aussi les contrôles suivants (gratuits) :

SmartNETButton
SmartViewport
SmartButton
Et quelques autres...

Guy



"" a écrit dans le message de
news:430c6b08$0$1730$
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais l'option
Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre d'OCX
dans mo programme.

Merci.




Avatar
Fr
> En effet, modifier l'apparence des menus n'est pas chose facile.
Subclassing, API, etc...
Dur dur boulot !

Afin de ne pas te lancer dans une programmation ardue, je te propose le
lien
suivant.
Tu y trouveras entre autres un contrôle (ActiveX) très très bien fait
(très
pros) et très stables, et qui plus est gratuits !

SmartMenuXP Control
http://www.visual-basic.com.ar/vbsmart/library/smartmenuxp/smartmenuxp.htm



Salut,

Merci pour le lien, en fait je conais MenuXP ocx, il est très bien, mais je
voulais savoir si il existait une solution sans OCX.
Avatar
Christian Hubert-Hugoud
Il en existe une, je l'ai fait. Il suffit d'avoir un ocx avec le code
source, et d'implémenter cela dans ton projet comme contrôle ctl ou
directement avec les classes etc..

C'est ce que j'ai fait et cela fonctionne très bien. Cela demande quelques
heures de travail quand même.

Christian


"" a écrit dans le message de news:
430d97c2$0$1704$
En effet, modifier l'apparence des menus n'est pas chose facile.
Subclassing, API, etc...
Dur dur boulot !

Afin de ne pas te lancer dans une programmation ardue, je te propose le
lien
suivant.
Tu y trouveras entre autres un contrôle (ActiveX) très très bien fait
(très
pros) et très stables, et qui plus est gratuits !

SmartMenuXP Control
http://www.visual-basic.com.ar/vbsmart/library/smartmenuxp/smartmenuxp.htm



Salut,

Merci pour le lien, en fait je conais MenuXP ocx, il est très bien, mais
je voulais savoir si il existait une solution sans OCX.



Avatar
Modeste
Bonsour®
il est possible via les API windows
de changer les couleurs de tout les eléments affichés.
!!!!!!!!!!!! attention cela s'applique à tout l'environnement windows.
!!!!!!!!!
il faut donc mémoriser les couleurs avant exécution de ton application, pour
pouvoir les restituer lorsque que tu la quitte...
avec le risque de sortie imprévue !!!


des exemples d'utilisation des API là :
'KPD-Team 1999
'URL: http://www.allapi.net/
notament :
API-Guide download
API-Guide 3.7 (+/- 2.20MB)(*)
http://users.chello.be/cr27630/3.7/agsetup.exe

dont cet exemple à utiliser et modifier avec prudence ;o)))

Const COLOR_SCROLLBAR = 0
Const COLOR_BACKGROUND = 1
Const COLOR_ACTIVECAPTION = 2
Const COLOR_INACTIVECAPTION = 3
Const COLOR_MENU = 4
Const COLOR_WINDOW = 5
Const COLOR_WINDOWFRAME = 6
Const COLOR_MENUTEXT = 7
Const COLOR_WINDOWTEXT = 8
Const COLOR_CAPTIONTEXT = 9
Const COLOR_ACTIVEBORDER = 10
Const COLOR_INACTIVEBORDER = 11
Const COLOR_APPWORKSPACE = 12
Const COLOR_HIGHLIGHT = 13
Const COLOR_HIGHLIGHTTEXT = 14
Const COLOR_BTNFACE = 15
Const COLOR_BTNSHADOW = 16
Const COLOR_GRAYTEXT = 17
Const COLOR_BTNTEXT = 18
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
Dim SavedColors(18) As Long, IndexArray(18) As Long, NewColors(18) As Long
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail:
' Save current system colors:
For i = 0 To 18
SavedColors(i) = GetSysColor(i)
Next i
' Change all display elements:
For i = 0 To 18
Randomize Timer
NewColors(i) = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
IndexArray(i) = i
Next i
SetSysColors 19, IndexArray(0), NewColors(0)
End Sub
Private Sub Form_Unload(Cancel As Integer)
' Restore system colors:
SetSysColors 19, IndexArray(0), SavedColors(0)
End Sub

wrote:
Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais
l'option Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre
d'OCX dans mo programme.

Merci.



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042
Avatar
Guy DETIENNE
Salut ;O)

Cette solution me semble inadaptée à partir du moment où tout le système est
impacté.
J'imagine mal développer un soft qui changerait l'apparence du Windows le
temps de l'exécution de celui-ci.
Et si le soft plante ? Comme tu le dis, la procédure de remise à la normale
des couleurs ne sera pas exécutée... Pas convaincant du tout.

Guy

"Modeste" a écrit dans le message de
news:
Bonsour®
il est possible via les API windows
de changer les couleurs de tout les eléments affichés.
!!!!!!!!!!!! attention cela s'applique à tout l'environnement windows.
!!!!!!!!!
il faut donc mémoriser les couleurs avant exécution de ton application,


pour
pouvoir les restituer lorsque que tu la quitte...
avec le risque de sortie imprévue !!!


des exemples d'utilisation des API là :
'KPD-Team 1999
'URL: http://www.allapi.net/
notament :
API-Guide download
API-Guide 3.7 (+/- 2.20MB)(*)
http://users.chello.be/cr27630/3.7/agsetup.exe

dont cet exemple à utiliser et modifier avec prudence ;o)))

Const COLOR_SCROLLBAR = 0
Const COLOR_BACKGROUND = 1
Const COLOR_ACTIVECAPTION = 2
Const COLOR_INACTIVECAPTION = 3
Const COLOR_MENU = 4
Const COLOR_WINDOW = 5
Const COLOR_WINDOWFRAME = 6
Const COLOR_MENUTEXT = 7
Const COLOR_WINDOWTEXT = 8
Const COLOR_CAPTIONTEXT = 9
Const COLOR_ACTIVEBORDER = 10
Const COLOR_INACTIVEBORDER = 11
Const COLOR_APPWORKSPACE = 12
Const COLOR_HIGHLIGHT = 13
Const COLOR_HIGHLIGHTTEXT = 14
Const COLOR_BTNFACE = 15
Const COLOR_BTNSHADOW = 16
Const COLOR_GRAYTEXT = 17
Const COLOR_BTNTEXT = 18
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
Dim SavedColors(18) As Long, IndexArray(18) As Long, NewColors(18) As Long
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail:
' Save current system colors:
For i = 0 To 18
SavedColors(i) = GetSysColor(i)
Next i
' Change all display elements:
For i = 0 To 18
Randomize Timer
NewColors(i) = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
IndexArray(i) = i
Next i
SetSysColors 19, IndexArray(0), NewColors(0)
End Sub
Private Sub Form_Unload(Cancel As Integer)
' Restore system colors:
SetSysColors 19, IndexArray(0), SavedColors(0)
End Sub

wrote:
> Bonjour,
>
> Je voudrais changer la couleur des menus de mon programme, mais
> l'option Backcolor n'existe pas pour les menus !
>
> Comment pourrais-je faire ?
>
> Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre
> d'OCX dans mo programme.
>
> Merci.

--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042




Avatar
Michel
Guy DETIENNE a écrit :
Salut ;O)

Cette solution me semble inadaptée à partir du moment où tout le système est
impacté.
J'imagine mal développer un soft qui changerait l'apparence du Windows le
temps de l'exécution de celui-ci.
Et si le soft plante ? Comme tu le dis, la procédure de remise à la normale
des couleurs ne sera pas exécutée... Pas convaincant du tout.

Guy

"Modeste" a écrit dans le message de
news:

Bonsour®
il est possible via les API windows
de changer les couleurs de tout les eléments affichés.
!!!!!!!!!!!! attention cela s'applique à tout l'environnement windows.
!!!!!!!!!
il faut donc mémoriser les couleurs avant exécution de ton application,



pour

pouvoir les restituer lorsque que tu la quitte...
avec le risque de sortie imprévue !!!


des exemples d'utilisation des API là :
'KPD-Team 1999
'URL: http://www.allapi.net/
notament :
API-Guide download
API-Guide 3.7 (+/- 2.20MB)(*)
http://users.chello.be/cr27630/3.7/agsetup.exe

dont cet exemple à utiliser et modifier avec prudence ;o)))

Const COLOR_SCROLLBAR = 0
Const COLOR_BACKGROUND = 1
Const COLOR_ACTIVECAPTION = 2
Const COLOR_INACTIVECAPTION = 3
Const COLOR_MENU = 4
Const COLOR_WINDOW = 5
Const COLOR_WINDOWFRAME = 6
Const COLOR_MENUTEXT = 7
Const COLOR_WINDOWTEXT = 8
Const COLOR_CAPTIONTEXT = 9
Const COLOR_ACTIVEBORDER = 10
Const COLOR_INACTIVEBORDER = 11
Const COLOR_APPWORKSPACE = 12
Const COLOR_HIGHLIGHT = 13
Const COLOR_HIGHLIGHTTEXT = 14
Const COLOR_BTNFACE = 15
Const COLOR_BTNSHADOW = 16
Const COLOR_GRAYTEXT = 17
Const COLOR_BTNTEXT = 18
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
Dim SavedColors(18) As Long, IndexArray(18) As Long, NewColors(18) As Long
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail:
' Save current system colors:
For i = 0 To 18
SavedColors(i) = GetSysColor(i)
Next i
' Change all display elements:
For i = 0 To 18
Randomize Timer
NewColors(i) = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
IndexArray(i) = i
Next i
SetSysColors 19, IndexArray(0), NewColors(0)
End Sub
Private Sub Form_Unload(Cancel As Integer)
' Restore system colors:
SetSysColors 19, IndexArray(0), SavedColors(0)
End Sub

wrote:

Bonjour,

Je voudrais changer la couleur des menus de mon programme, mais
l'option Backcolor n'existe pas pour les menus !

Comment pourrais-je faire ?

Il existe bien des OCX comme MenuXP, mas je ne voudrais pas mettre
d'OCX dans mo programme.

Merci.



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042









Effectivement on retombe dans le subclassing pour ne l'appliquer qu'à
ton application.
C'est à dire activation lorsque tu as la main et desctivation lorsque tu la perd
un peu délicat à gerer mais faisable.
1 2