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