Accueil > > > MENU EN POPUP AVEC IMAGES SANS PASSER PAR LE CRÉATEUR DE MENUS DE VB [MODULE DE CLASSE]
MENU EN POPUP AVEC IMAGES SANS PASSER PAR LE CRÉATEUR DE MENUS DE VB [MODULE DE CLASSE]
Information sur la source
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
- 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
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...
Historique
- 24 juillet 2006 01:49:48 :
- zip
- 24 juillet 2006 04:01:00 :
- retourne les propriétés checked et enabled d'un item sur demande
- 28 juillet 2006 09:31:42 :
- quelques optimisations...
- 19 novembre 2006 00:02:29 :
- remaniement complet, on peut maintenant créer autant de menus et de sous-menus que l'on veut, mettre des BMP ou GIF (préférés), récupérer les infos items comme on veut, etc etc....
voir capture, détails dans la source
- 16 mai 2007 00:37:59 :
- correction bug remonté par 'Egyde', on ne pouvait pas désactiver un menu-parent. merci ;)
- 22 décembre 2007 15:30:40 :
- donne le focus à l'appli (en cas d'attachement du menu à un systray)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
PopUp Menu [ par Yerffuaj ]
Bonjour, je ne connais pas très bien VB mais je fais un stage sous VB6 et il faudrait que j'arrive à augmenter la taille de police des popup menu qui
Menus popup dans un MDIChild [ par Sandro ]
Hello... je vais essayer de faire court :-)J'ai un p'ti soft MDI. Dans une feuille Child, je veux faire apparaître un menu Popup. J'y ajoute donc un m
Popup menu [ par baba ]
Comment peut on faire pour ajouter des icones dans un menu (popup) en VB ?Merci
Popup menu dans DBGrid ou équivalent [ par lolo ]
Bonjour,je débute en VB6 et je voudrais faire un formulaire de visualisation/modification de données sur une table du style:MaTable: ID carac1 c
popup menu dans listview ou treeview en VBA [ par reman ]
Salut à tous,Je n'arrive pas à créer un popup sur un item d'une listview ou d'un treeview. Je débute, alors si quelqu'un pouvait m'aider en me donnant
Popup menu qui ne disparait pas sous Win NT [ par clafouti ]
J'ai le problème suivant : J'ai une icone dans le system tray (a coté de l'horloge). Lorsque je clique droit sur l'icone, je fait apparaître un popup
Popup menu et fenetre sans border [ par PKist ]
Lorsque je fais un menu, cela ajoute des border a ma fenetre de projet.comment créer un menu sans que cela n'ajoute de border ?
Menu popup [ par rivierem ]
Voila je voudrais creer un menu popup dynamiqueJ'arrive a le cree mais il ne s'affiche pas!!!Comment faire voila ma sourcePublic Sub charge_menu_ext
Probème d'évènements avec un classe reprise dans un tableau (array) [ par doct ]
Salut,je ne sais pas si je me fais bien comprendre, mais en gros, lorsque je déclare une classe de cette manière :dim withevents Cls() as Classe1ça ne
fermer un popup menu [ par patrick ]
Bonjour, Juste une petite question : j'aimerais fermer par programme un menu "popup" !merci d'avance, patrick Moirehttp:\\jeux.cartes.free.fr
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|