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