BmpToMenu




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:

'hMenul'handle del menu superiore

'nPosposizione 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:










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