Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6 - inserire icone nel Menù.

    Dopo svariati tentativi, e grazie all'aiuto che ho ricevuto nel Forum, sono riuscito ad inserire le icone nel menù.
    Penso che sia cosa gradita postare il codice, se non altro a risparmio di tempo per chi dovesse affrontare lo stesso problema.
    Da inserire in un modulo bas:
    codice:
    Option Explicit
    Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    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
    Public Const MF_BYPOSITION = &H400&
    Da inserire nel modulo della Form:
    codice:
     
    Private Sub Form_Load()
        Dim hMenuBarra As Long        'handle per la barra dei menu
        Dim hMenuPrimo As Long        'handle del primo menu nella barra
        
        Dim img1 As Long
        Dim img2 As Long
        Dim img3 As Long
        
        Dim ris As Boolean                  'risposta della funzione
    
        Dim img1X As ListImage
        Dim img2X As ListImage
        Dim img3X As ListImage
        
        Set img1X = ImageList1.ListImages("Apri")
        Set img2X = ImageList1.ListImages("Salva")
        Set img3X = ImageList1.ListImages("Cancella")
        
        mg1 = img1X.Picture.Handle   'Ottiene l'handle della 1^ immagine
        img2 = img2X.Picture.Handle  'Ottiene l'handle della 2^ immagine
        img3 = img3X.Picture.Handle  'Ottiene l'handle della 3^ immagine
        
    'Ottiene l'handle della barra del menu:
        hMenuBarra = GetMenu(Form1.hwnd)
    'Ottiene l'handle del primo menu (indice che parte da zero):
        hMenuPrimo = GetSubMenu(hMenuBarra, 0)
        
    'Ottenuto l'handle della voce del menu desiderata si può passare
    'all'impostazione vera e propria delle immagini (bmp),
    'che devono essere di 13x13 pixels (attenzione Non
    'di più altrimenti la funzione dà errore).
        
        ris = SetMenuItemBitmaps(hMenuPrimo, 0, MF_BYPOSITION, img1, img1)
        ris = SetMenuItemBitmaps(hMenuPrimo, 1, MF_BYPOSITION, img2, img2)
        ris = SetMenuItemBitmaps(hMenuPrimo, 2, MF_BYPOSITION, img3, img3)
    
    End Sub
    La form è corredata di una barra delle icone con la sua ImageList, e dal menù con un'altra ImageList nella quale vanno caricate le Bmp di dimensione 13x13 pixel (per ridurre le Bmp si può utilizzare un programma tipo PhotoPaint o altro).
    LM

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    anche io ho suato quelle api per ottenere lo stesso effetto ma, mi chedo se anche a te da l'errore che nel menu l'immagine viene evidenziata insieme al testo
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    No, il codice funziona perfettamente. Le immagini sono separate dal testo.
    Ciao.
    LM

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    ciao purtroppo a me da lo stesso errore cioè le immagini vengono evidenziate insieme al testo. che tu sappia bisogna avere qualche accorgimento particolare per evitare ciò?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciro,
    non capisco l'errore da te lamentato: "purtroppo a me da lo stesso errore cioè le immagini vengono evidenziate insieme al testo". Se si tratta di una sovrapposizione tra icona e testo (inserito nella Caption del SubMenù) si vede che non hai inserito corretamente il SubMenù o che l'icona non è 13x13 pixels. Ad esempio nell'editor di menu la voce Salva, Caption "Salva" - Name "mnuFileSalva" va inserita dopo aver cliccato sulla freccetta -> in modo che Salva appaia dopo i quattro puntini .... Se lo spazio è ancora insufficiente usa la barra spaziatrice per spostare ancora più a Dx Salva.
    Fammi sapere, se persiste il problema posta un'immagine.
    Ciao.
    LM

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    no guarda il problema è nato dalla tua risposta precedente. ti avevo chiesto se anche le immgaini venivano evidenziate insieme al testo.mi hai rispoto di no. Quella è una cosa che volevo evitare. Sinceramente non capisco come fare ma un modo ci deve essere per eliminare questo effetto
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.