tunmsk
Messages postés3Date d'inscriptiondimanche 23 décembre 2001StatutMembreDernière intervention18 mai 2002
-
7 mai 2002 à 18:49
alex_kirchen
Messages postés58Date d'inscriptionmardi 28 octobre 2003StatutMembreDernière intervention10 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 @+
fredlynx
Messages postés662Date d'inscriptionmercredi 16 janvier 2002StatutModérateurDernière intervention16 octobre 20103 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 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
fredlynx
Messages postés662Date d'inscriptionmercredi 16 janvier 2002StatutModérateurDernière intervention16 octobre 20103 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
maitredede
Messages postés153Date d'inscriptionvendredi 9 août 2002StatutMembreDernière intervention18 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...
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à