BmpMenu




Dim hmnu As Long
hmnu = GetMenu(Me.hWind)
'Ora dovremmo riferirci al menu File, ovvero al menu popup

'di nome mnuFile. Per ottenere l'handle di questo menu si

'dovra' utilizzare la funzione GetSubMenu delle API.

'A questa funzione e' necessario passare due parametri:

'hMenu l'handle del menu superiore

'nPos posizione del menu popup all'interno del menu superiore

'numerato partendo da zero

'quindi si scrivera' l'istruzione del programma nel modo

'seguente:

Dim hmnPopup As Long
hmnuPopup = GetSubMenu(hmnu, 0)
'Una volta ottenuto l'handle del menu mnuFile si potra'

'utilizzare la funzione SetMenuItemBitmaps delle API per

'posizionare la bitmap all'interno di una voce presente nel

'menu popup. A questa funzione e' necessario passare cinque

'parametri:

'hMenu handle del menu popup (mnuFile)

'nPos posizione della voce all'interno del menu popup numerata

'partendo da zero wFlags specifica come interpretare il valore

'nPos. In questo contesto lo si dovra' impostare a &H400

'hBmUnChk bitmap da visualizzare quando la voce ha la proprieta'

'Checked = False

'hBmChk bitmap da visualizzare quanto la voce ha la proprieta'

'Checked = True

'I paramteri hBmUnChk e hBmChk devono essere passati come

'interi lunghi. In realta' a questi parametri deve essere

'passato un riferimento alla bitmap. Per ottenere un

'riferimento si dovra' utilizzare la proprieta' picture di un

'controllo Image. Quindi si scrivera' la procedura del programma

'nel modo seguente:

Dim x As Long
Dim iBitmap As Long
IBitmap = Image1.Picture
x = SetMenuItemBitmaps(hmnuPopup, 0, &H400, iBitmap, iBitmap)
Nell'ultima versione di Microsoft Office© 97 si puo' notare che
alla sinistra delle voci dei menu sono presenti anche delle
bitmap che identificano meglio la voce ed abbelliscono il
pacchetto, questa caratteristica si puo' notare anche nel menu
popup che compare cliccando sul pulsante Avvio della barra
delle applicazioni di Windows 95©.

Normalmente in VB non e' possibile creare un menu del genere.
Utilizzando le API si potranno abbellire i menu dei propri
applicativi conferendogli un abito piu' piacevole e diverso.
Vediamo come:

Tutti i menu presenti in un form sono contenuti in un oggetto
unico che potremmo chiamare menu superiore.

Ogni menu e' in realta' un sotto menu di questo oggetto.
Si supponga di avere un form con un menu che ha la proprieta'
Name impostata a mnuFile e che sia presente almeno una voce
in questo menu. Per prima cosa si dovra' ricavare l'handle del
menu superiore attraverso la funzione GetMenu delle API
passandogli come parametro l'handle del form:










( bmpmenu.html )- by Paolo Puglisi - Modifica del 17/12/2023