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
WebMaster-------------------------------
Réponse au message :
-------------------------------
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 @+