classe, cole o seguinte codigo:Private Type POINTAPIX As LongY As LongEnd TypePrivate Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypePrivate Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As LongEnd TypePrivate 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 LongPrivate Declare Function GetMenu Lib "user32" _ (ByVal hwnd As Long) As LongPrivate Declare Function GetMenuItemCount Lib "user32" _ (ByVal hMenu As Long) As LongPrivate Declare Function GetSubMenu Lib "user32" _ (ByVal hMenu As Long, ByVal nPos As Long) As LongPrivate Declare Function GetMenuItemInfo Lib "user32" _ Alias "GetMenuItemInfoA" _ (ByVal hMenu As Long, ByVal un As Long, _ ByVal b As Boolean, lpmii As MENUITEMINFO) As LongPrivate Declare Function SetMenuItemInfo Lib "user32" _ Alias "SetMenuItemInfoA" _ (ByVal hMenu As Long, ByVal uItem As Long, _ ByVal fByPosition As Long, lpmii As MENUITEMINFO) As LongPrivate Declare Function CreatePopupMenu Lib "user32" () As LongPrivate 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, lprc As RECT) As LongPrivate Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As LongPrivate Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As LongPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPrivate Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As LongPrivate hMenu As LongPrivate Const MIIM_STATE As Long = &H1Private Const MIIM_ID As Long = &H2Private Const MIIM_SUBMENU As Long = &H4Private Const MIIM_CHECKMARKS As Long = &H8Private Const MIIM_TYPE As Long = &H10Private Const MIIM_DATA As Long = &H20Private Const MFT_RADIOCHECK As Long = &H200Private Const MFT_STRING As Long = &H0Private Const RGB_STARTNEWCOLUMNWITHVERTBAR As Long = &H20Private Const RGB_STARTNEWCOLUMN As Long = &H40Private Const RGB_EMPTY As Long = &H100Private Const RGB_VERTICALBARBREAK As Long = &H160Private Const RGB_SEPARATOR As Long = &H800Private Const MF_CHECKED = &H8&Private Const MF_APPEND = &H100&Private Const TPM_LEFTALIGN = &H0&Private Const MF_DISABLED = &H2&Private Const MF_GRAYED = &H1&Private Const MF_SEPARATOR = &H800&Private Const MF_STRING = &H0&Public Function Create() As LongOn Error GoTo fimCreate = CreatePopupMenuExit Functionfim:Create = CLng(False)End FunctionPublic Function Count(ByVal menuh As Long) As LongGetMenuItemCount menuhEnd FunctionPublic Function Show(ByVal menuh As Long, ByVal owner As Long, ByVal X As Double, ByVal Y As Double) As LongDim rc As RECTShow = TrackPopupMenu(menuh, 256, X, Y, 0, owner, rc)End FunctionPublic Sub Add(ByVal menuh As Long, ByVal pos As Long, ByVal Text As String, Optional ByVal Flags As Long = 0, Optional lpImage As StdPicture)On Error Resume NextAppendMenu menuh, Flags, pos, Text If lpImage Then SetMenuItemBitmaps menuh, pos, 0, lpImage, lpImageEnd SubPublic Sub Destroy(ByVal menuHandle As