Posso postare il codice preso da una ricerca in rete e leggermente modificato da me.
Ho provato un paio di versioni con e senza la imagelist. alla fine ho scelto la seconda perchè con l'imagelist era tutto molto astruso e non valeva la pena la mole di codice anche perchè mi dava errori nelle dichiarazioni pur essendo per vb6.
Se dall'editor di menu metto come non visibile il menu principale non vedo più le immagini quando lo richiamo da tasto destro, ma tutto funziona perfettamente se lo rendo visibile
dichiarazioni
codice:
Option Explicit
Private Const MF_BYPOSITION = &H400&
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 imgBitmaps(4) As IPictureDisp
quindi la routine
codice:
private sub MnuPic_click
Dim hSubMenu As Long
Set imgBitmaps(0) = Image1(0).Picture
Set imgBitmaps(1) = Image1(3).Picture
Set imgBitmaps(2) = Image1(4).Picture
Set imgBitmaps(3) = Image1(1).Picture
Set imgBitmaps(4) = Image1(2).Picture
hSubMenu = GetSubMenu(GetMenu(Me.hwnd), 0)
Call SetMenuItemBitmaps(hSubMenu, 0, MF_BYPOSITION, imgBitmaps(0).Handle, imgBitmaps(0).Handle)
Call SetMenuItemBitmaps(hSubMenu, 1, MF_BYPOSITION, imgBitmaps(1).Handle, imgBitmaps(1).Handle)
Call SetMenuItemBitmaps(hSubMenu, 2, MF_BYPOSITION, imgBitmaps(2).Handle, imgBitmaps(2).Handle)
Call SetMenuItemBitmaps(hSubMenu, 3, MF_BYPOSITION, imgBitmaps(3).Handle, imgBitmaps(3).Handle)
Call SetMenuItemBitmaps(hSubMenu, 4, MF_BYPOSITION, imgBitmaps(4).Handle, imgBitmaps(4).Handle)
end sub
richiamata dal form.load
codice:
Call MnuPic_click
Ps: ho un banner pubblicitario a sfondo trasparente in alto a sinistra nel forum che non vuole sparire. E' normale?