Newsgroup: it.comp.lang.visual-basic
Titolo: Menu e Tree View

Ciao a tutti.
Mi scuso nel caso in cui l'argomento sia già stato trattato ma da una
ricerca in google non ho trovato nulla.
Il problema è questo :
Dovrei riempire runtime una Tree View con lo schema dei menu della finestra.
Mi spiego meglio:
Data una finestra con dei menu del genere
Menu1        Menu2            Menu3
   Menu1.1      Menu2.1         Menu3.1
   Menu1.2      Menu2.2         Menu3.2
       Menu1.3
dovrei costruire un tree view così fatto :
Menu1
   Menu1.1
   Menu1.2
      Menu1.3
Menu2
   Menu2.1
   Menu2.2
Menu3
   Menu3.1
   Menu3.2
Grazie dell'attenzione
Ciao
Franco

 Mi spiego meglio:
Posso solo darti delle indicazioni poichè non ho mai affrontato il problema
specifico.
Ti servono le funzioni api per i menu.
Poi dai un occhio a questa funzione che io mi ero fatto per passarmi tutto
l'albero dei menu alla ricerca di quello con una data caption.
Credo che tu la possa facilmente adattare eliminando il controllo sulla
caption per scorrere tutti i menu.
Private Type MenuIdx
    hMenu As Long
    Pos As Long
End Type
Private Function GethMenuFromCaption(ByVal Handle As Long, ByVal Caption As
String, ByRef Found As Boolean) As MenuIdx
    Dim hMenu As Long
    Dim i As Long
    Dim lpString As String
    Dim lpsLen As Long
    Dim Comparation As Boolean
    If IsMenu(Handle) = 0 Then
        'hMenu è l'handle della finestra
        hMenu = GetMenu(Handle)
    Else
        hMenu = Handle
    End If
    GethMenuFromCaption.hMenu = -1
    GethMenuFromCaption.Pos = -1
    For i = 0 To GetMenuItemCount(hMenu) - 1
        lpString = Space$(&HFF)
        lpsLen = GetMenuString(hMenu, i, lpString, &HFF, MF_BYPOSITION)
        lpString = Left$(lpString, lpsLen)
        Comparation = False
        If p_Compare = WithUnderline Then
            If StrComp(lpString, Caption, vbTextCompare) = 0 Then
                Comparation = True
            End If
        Else
            If (RemoveUnderLine(lpString) Like Caption) Then
                Comparation = True
            End If
        End If
        If Comparation = True Then
            GethMenuFromCaption.hMenu = hMenu
            GethMenuFromCaption.Pos = i
            Found = True
            Exit Function
        Else
            If GetSubMenu(hMenu, i) > 0 Then
                GethMenuFromCaption = GethMenuFromCaption(GetSubMenu(hMenu,
i), Caption, Found)
            End If
        End If
        If Found Then
            Exit Function
        End If
    Next i
End Function
***
*** Con questa fai l'inverso: dato l'handle di un menu ricavi la caption
***
Property Get Caption(ByVal Handle As Long, ByVal nPos As Long) As String
    Dim hMenu As Long
    Dim lpString As String
    Dim lpsLen As Long
    Dim Operation As Long
    If IsMenu(Handle) Then
        hMenu = Handle
    Else
        hMenu = GetMenu(p_hWnd)
    End If
    If nPos <> 0 Then
        Operation = MF_BYCOMMAND
    Else
        Operation = MF_BYPOSITION
    End If
    lpString = Space$(&HFF)
    lpsLen = GetMenuString(hMenu, nPos, lpString, &HFF, Operation)
    Caption = Left$(lpString, lpsLen)
End Property
***
*** Con queste due dovresti avere tutto ciò che ti serve
***
Ciao
------------
Questa è una risposta ritenuta inutile e maleducata da alcuni partecipanti.
(Campagna contro l'abuso del NewsGroup)
(Per informazioni: 
http://www.it-lang-vb.net/docs/Manifesto.txt
)


oppure puoi utilizzare un componente esterno per gestire i menų, come ad
esempio quello pubblicato (completo di sorgenti) in 
www.vbaccelerator.com
ciao