Icones dans les sous-menu

tunmsk Messages postés 3 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 18 mai 2002 - 7 mai 2002 à 18:49
alex_kirchen Messages postés 58 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 10 février 2006 - 19 juil. 2005 à 18:48
salut tout le monde
qqn peut il m'aider pourque je puisse inserer des icones dans les sous menu (exemple après deroulement du menu Edition je trouve une icone à coté de Copier à gauche ) je pense que c'est le cas de winzip !!
est-il possibel en vb , et comment svp ??
merci @+

7 réponses

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
7 mai 2002 à 19:37
J'espère que ce post va passer ...?!
Voili ta soluce ;)
Exemple avec des Pictures boc mais tu peux mettre une imagelist non soucis

Bon prog ........

Option Explicit
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hmenu As Long, ByVal nPos As Long) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hmenu As Long, ByVal un As Long, ByVal bypos As Long, lpcMenuItemInfo As MENUITEMINFO) As Long

Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wid As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As Long
cch As Long
End Type

Private Const MF_BITMAP = &H4&
Private Const MFT_BITMAP = MF_BITMAP
Private Const MIIM_TYPE = &H10

Private Sub Form_Load()
'----------------------
'| Fichier | Copier |
'----------------------
' Quitter
'Menu 0 Niveau 0
SetMenuBitmap Me, Array(0, 0), Picture1.Picture
'----------------------
'| Fichier | Edition |
'----------------------
'----------- Copier
'Menu 1 Niveau 0
SetMenuBitmap Me, Array(1, 0), Picture2.Picture
'----------------------
'| Fichier | Edition |
'----------------------
'----------- Sous Mnu
'--------------- |-> Test
'Menu 1 Niveau 1 Sous Menu 0
SetMenuBitmap Me, Array(1, 1, 0), Picture3.Picture
End Sub

Public Sub SetMenuBitmap(ByVal Frm As Form, ByVal item_numbers As Variant, ByVal pic As Picture)
Dim hmenu As Long
Dim Boucle As Integer
Dim MenuInfo As MENUITEMINFO

'Cherche le handle du menu choisi
hmenu = GetMenu(Frm.hwnd)
For Boucle = LBound(item_numbers) To UBound(item_numbers) - 1
hmenu = GetSubMenu(hmenu, item_numbers(Boucle))
Next
'Complète l'info Bitmap
With MenuInfo
.cbSize = Len(MenuInfo)
.fMask = MIIM_TYPE
.fType = MFT_BITMAP
.dwTypeData = pic
End With
'Applique l'image :)
SetMenuItemInfo hmenu, item_numbers(UBound(item_numbers)), True, MenuInfo
End Sub

<center>http://www.lynx-asp.fr.st
WebMaster</center>
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
7 mai 2002 à 19:56
Petit ajout puisque j'ai une minute lol :)

C'est peut être pas la version précédente qu'il te faut parce que ... enfin teste les deux tu vas bien voir :)

Version II mais attention dans cette version les icone ou image que tu va mettre dans le menu doivent avoir une dimention de 13*13 tout petit petit :(

Aller Yop le code !

Option Explicit

Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long

Private Const MF_BITMAP = &H4&

Private Sub Form_Load()
'----------------------
'| Fichier | Copier |
'----------------------
' Quitter
'Menu 0 Niveau 0
SetMenuBitmap Me, Array(0, 0), 2, Picture1.Picture
'----------------------
'| Fichier | Edition |
'----------------------
'---------- Copier
'Menu 1 Niveau 0
SetMenuBitmap Me, Array(1, 0), 4, Picture2.Picture
'----------------------
'| Fichier | Edition |
'----------------------
'---------- Sous Mnu
'---------- |-> Test
'Menu 1 Niveau 1 Sous Menu 0
SetMenuBitmap Me, Array(1, 1, 0), 6, Picture3.Picture
End Sub

Public Sub SetMenuBitmap(ByVal Frm As Form, ByVal item_numbers As Variant, ByVal NumMenu As Integer, ByVal pic As Picture)
Dim hMenu As Long
Dim Boucle As Integer

'Cherche le handle du menu choisi
hMenu = GetMenu(Frm.hwnd)
For Boucle = LBound(item_numbers) To UBound(item_numbers) - 1
hMenu = GetSubMenu(hMenu, item_numbers(Boucle))
Next

SetMenuItemBitmaps hMenu, NumMenu, MF_BITMAP, pic.Handle, pic.Handle

End Sub

<center>http://www.lynx-asp.fr.st
WebMaster</center>
0
tunmsk Messages postés 3 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 18 mai 2002
18 mai 2002 à 22:52
Merci Nix :) c'est gentil de votre part je vais essayer le truc et vous dire du résultalt
merci encore @+
cordialement
Mohamed
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
21 mai 2004 à 22:06
Ce code est super seulement les icone 13*13 sont dure à trouvées ...

Je sais pas si un de vous 2 auraient un site ou les trouvé Merci .. ( Disquette, dosier ... )

Nightcourrier :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
8 juil. 2004 à 10:01
Salut
Ca a l'air d'être un super code, mais j'arrive pas à le faire marcher : une explication un peu plus détaillé me semblerais sympa, comme quel paramètre sert à quoi et comment on le fait...

Voici le code que j'ai tapé :

    SetMenuBitmap frmMain, Array(0, 0), 2, LoadPicture(App.Path & ".\crdfle03.ico", vbLPSmall)


l'icone est une de celles fournies par M$ à l'installe...
mon menu est :
Menu1
|>Truc1
|>SousMenu1
|>SousTruc1
Après j'ai menu2, menu3 etc...
Comment je détermine les trucs à mettre dans array(), le paramètre d'après, et si je peut utiliser un loadpicture(), ou une imagelist, ou un fichier res....
Voilà
0
foliop Messages postés 191 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 27 octobre 2008
22 sept. 2004 à 23:38
salut

jai fait ton code et ca marche seulement pour le premier item du menu
en fai tjai un menu du style
FICHIER - EDITION - PARAMETRE

ca marche pour fichier ou je met
SetMenuBitmap Me, Array(0, 0), 2, Picture3.Picture

mais pour le menu EDITION je met
SetMenuBitmap Me, Array(1, 0), 2, Picture3.Picture

et ca marche pas

qqun peut maider ?
0
alex_kirchen Messages postés 58 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 10 février 2006
19 juil. 2005 à 18:48
Salut!


Les icônes ne s'affichent pas quand le menu est caché.

Quelqu'un pourrait-il m'aider?
0
Rejoignez-nous