Menu en popup avec images sans passer par le créateur de menus de vb [module de classe]


Description

on a parfois besoin d'un menu en popup....
seulement si la fenêtre est skinnée (sans barre de titre), en passant par le créateur de menus de VB on se retrouve avec soit la barre de titre, soit la barre de menu au dessus de la skin. un peu très moche...

on peut toujours passer par une 2e form hidden mais ce n'est pas toujours évident pour renvoyer les évènements sur la bonne form.
ici une simple classe.
on crée les items (modifiables en cours), on appelle l'affichage du popup sur l'évènement désiré et la classe nous renvoie l'item cliqué.

comme d'hab ;)

Source / Exemple :


Option Explicit
Private WithEvents AfMenu As AfCls_PopupMenu
'
Private Sub Form_Load()
    Set AfMenu = New AfCls_PopupMenu
    AfMenu.ParentHandle = Me.hWnd
    AfMenu.AddItem 101, "Ouvrir"
    AfMenu.AddItem 102, "Enregistrer sous", False, False
    AfMenu.AddSeparator
    AfMenu.AddItem 103, "[X] Quitter"

'   OUBIEN
    AfMenu.CreateEasyMenu "Ouvrir;Enregistrer sous;;[X] Quitter"
End Sub
'
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then AfMenu.DisplayMenu
End Sub
'
Private Sub Form_Unload(Cancel As Integer)
    Set AfMenu = Nothing
End Sub
'
Private Sub AfMenu_Clicked(ByVal ID As Long, ByVal Caption As String, ByVal Checked As Boolean, ByVal Tag As Variant, ByVal IsChild As Boolean)
    Debug.Print "MENU CLICKé : " & ID & "   " & Caption & "   " & Checked
End Sub

Conclusion :


le but est uniquement un côté pratique. rien d'extraordiaire dans la création d'un popup mais çà peut toujours servir...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.