Buongiorno ragazzi

Ho un form in cui oltre a vari oggetti è contenuta una toolbar. Questa toolbar ha un bottone cliccando il quale appare un PopupMenù.
L'apertura di questo PopupMenù l'ho gestita tramite API, perchè avevo la necessità di farlo apparire in un punto preciso.
La creazione del menù la eseguo direttamente sull'oggetto Menù.
Il problema mi si pone nel momento in cui rendo invisibile tale menù in progettazione; infatti quando clicco sulla toolbar il sistema non trova il riferimento al menù (invisibile) e quindi non me lo fa comparire.

Vorrei sapere come è possibile superare questo problema e fare come fa esattamente la funzione PopupMenù di VB, che fa apparire un menù anche se invisibile.

Di seguito vi riporto il codice che ho utilizzato:
codice:
Const TPM_LEFTALIGN = &H0&
        
Private Declare Function TrackPopupMenu Lib "user32" ( _
           ByVal hMenu As Long, _
           ByVal wFlags As Long, _
           ByVal x As Long, _
           ByVal y As Long, _
           ByVal nReserved As Long, _
           ByVal hWnd As Long, _
           ByVal lprc As Any) As Long
Private Declare Function GetMenu Lib "user32" ( _
           ByVal hWnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" ( _
           ByVal hMenu As Long, _
           ByVal nPos As Long) As Long
        
Dim hMenu As Long
Dim hMnuSub As Long
' Crea il menù dinamicamente con le voci trovate sul database
Public Sub CreaMenuCategorie()
    ' Scarica il menù
    ScaricaMenu

    Dim intMenu As Integer
    Dim miaSQL As String
    Dim rsRs As New ADODB.Recordset

    miaSQL = "Exec sp_RicercaCategoriePerAnno " & CLng(strAnno)
    rsRs.Open miaSQL, miaConn, 1, 3
    
    If rsRs.RecordCount > 0 Then
        intMenu = 0
        rsRs.MoveFirst
        Do Until rsRs.EOF
            ' carica una nuova voce se l'Index è > 0
            If intMenu > 0 Then Load mElenco(intMenu)
            With mElenco(intMenu) ' imposta le proprietà
                .Caption = Trim(rsRs("Categoria"))
                .Tag = rsRs("IDCategoria")
                .Visible = True
            End With
            intMenu = intMenu + 1
            rsRs.MoveNext
        Loop
    End If

    rsRs.Close
    Set rsRs = Nothing
End Sub

Private Sub ScaricaMenu()
    'cancella l'elenco delle categorie dal menù
    Dim i As Integer
    For i = mElenco.UBound To 1 Step -1
            Unload mElenco(i)
    Next i
End Sub

' Toolbar che visualizza il menù
Private Sub tbFreccia_ButtonClick(ByVal Button As MSComctlLib.Button)
    Dim lngX As Long
    Dim lngY As Long
    lngX = fraCategorie.Left
    lngY = fraCategorie.Top 

    hMenu = GetMenu(Me.hWnd)
    hMnuSub = GetSubMenu(hMenu, 0)

    ' Fa apparire il menù popup	
    TrackPopupMenu hMnuSub, TPM_LEFTALIGN, lngX, lngY, 0, Me.hWnd, 0&
End Sub

' SubItem del menù popup
Private Sub mElenco_Click(Index As Integer)
    MsgBox mElenco(Index).Caption
End Sub
Grazie a tutti