Newsgroup: it.comp.lang.visual-basic
Titolo: VB5 - Icone nei menu

Come faccio ad associare delle icone alle voci del mio menu'?
Non voglio usare nessun OCX.
Immagino di dover chiamare l'API  SetMenuItemBitmaps() :
=========
Declare Function SetMenuItemBitmaps Lib "user32" Alias
"SetMenuItemBitmaps" (ByVal hMenu As Long, ByVal nPosition As Long,
ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal
hBitmapChecked As Long) As Long
=========
Ma chi mi da' <hMenu>, dato che non si trova nelle proprieta' del
menu'?
E in che forma devo passare la bitmap?
Grazie
____
Patrizia Arrigoni
MENHIR Informatica
menh...@tin.it

Non potendo postare binari posto il codice:
Crea un menu tipo
File
...Item1 (nome a caso)
...Item2 (nome a caso)
inserisci due picture (PIcture1,Picture2) e carica 2 files .BMP (di
dimensioni opportune)
inserisci 2 commandbutton
Copia il codice
Ciao
Corrado
****************************************************************************
*****
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 ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal
hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal
wIDNewItem As Long, ByVal lpstring 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 Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long,
ByVal nPos As Long) As Long
Const MF_BITMAP = &H4&
Const MF_BYPOSITION = &H400&
Private Sub Command1_Click()
Dim hMenu As Long, hSubMenu As Long, lID As Long
'---------------------------------------------------
hMenu = GetMenu(Me.hwnd)
hSubMenu = GetSubMenu(hMenu, 0)
lID = GetMenuItemID(hSubMenu, 0)
ModifyMenu hSubMenu, 0, MF_BITMAP Or MF_BYPOSITION, lID, Picture1.Picture
End Sub
Private Sub Command2_Click()
Dim hMenu As Long, hSubMenu As Long, lID As Long
'---------------------------------------------------
hMenu = GetMenu(Me.hwnd)
hSubMenu = GetSubMenu(hMenu, 0)
lID = GetMenuItemID(hSubMenu, 1)
SetMenuItemBitmaps hSubMenu, 1, MF_BYPOSITION, Picture2.Picture, 0
End Sub
****************************************************************************
*****

Ho provato il tuo esempio ma ho qualche problema ...
Il primo caso che proponi visualizza il bitmap al posto della caption del
primo menu ; i colori sono giusti ma quando è selezionato il bmp diventa
'reverse'
Il secondo caso visualizza il bitmap a sinistra del testo ma, se non ho
capito male spulciando nella
documentazione, si possono solo usare solo immagini 13X13 e monocromatiche
; effettivamente in
questo caso i colori vengono ridotti ma la ModifyMenu (al contratio della
SetMenuItemBitmaps) permette di indicare un bmp da visualizzare quando
selezionato
Come si può ottenere un effetto 'normale' cioè icona non monocromatica a
sinistra del testo che non cambi quando selezionata ?
Ciao e grazie
Carlo CAPRILE
 

 sinistra del testo che non cambi quando selezionata ?
Ti sembrera' strano, ma quello che dici tu non e' l'effetto normale.
Comunque esistono OCX free che ti permettono di faro, ma non so altro.
Gente tipo Franco Stefanelli le ha usate: Franco, Ci sei?
-- 
Hi, Ciao
Ettore                 By -MES-
http://freeweb.aspide.it/freeweb/ilmes
 
(con OCX per stampare i Recordset)
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

Comunque esistono OCX free che ti permettono di faro, ma non so altro.
Scusatemi se dovessi combinare qualche casino: è la prima volta che posto
sul NG. Uno degli OCX freeware in questione è IconMenu32. Lo puoi scaricare
da 
http://free.imd.it/giazack
, alla sezione "librerie e OCX".
Ciao a tutti.
Davide.