|
La manière la plus simple d'ajouter
un menu à une fenêtre eVB est d'utiliser le contrôle
MenuBar. Ce contrôle, fourni en standard avec eVB, permet d'ajouter
des menus et des boutons de contrôle à chaque fenêtre
de votre application.
|
|
La première chose à
faire est de signaler à eVB que vous voulez utiliser un
contrôle complémentaire. Pour celà, selectionner
dans le menu 'Project' la ligne 'Components'
|
|
|
Vous devez ensuite cocher la ligne correspondant au
contrôle MenuBar. |
|
|
Ce qui ajoute automatiquement une icône dans
la boite à outils e eVB |
|
|
Il vous faut maintenant ajouter
le contrôle MenuBar dans la feuille eVB. Pour celà,
sélectionnez la feuille et double-cliquez sur l'icône
MenuBar de la boite à outils. Un rectangle blanc avec le
mot 'Menu' en son centre se place dans la fenêtre.
|
C'est le moment de taper du code.
Nous allons créer un menu 'Fichier', et un menu 'Edition'. Le menu
'Fichier' aura comme sous-menu 'Ouvrir', 'Ajouter', et 'Enregistrer'.
Le menu 'Edition' aura comme sous-menu 'Couper', 'Copier', et 'Coller'.
 |
La première chose à faire et de mettre
la propriété NewButton à faux. Nous verrons
plus tard à quoi elle peut bien servir. |
Le code d'initialisation de notre MenuBar est écrit sans la procédure
événement Form_Load :
Private Sub Form_Load()
Dim wMenu As MenuBarMenu
'Création du menu Fichier
Set wMenu = MenuBar1.Controls.AddMenu("Fichier", "$FICHIER")
Call wMenu.Items.Add(, "$OUVRIR", "Ouvrir")
Call wMenu.Items.Add(, "$AJOUTER", "Ajouter")
Call wMenu.Items.Add(, "$ENREGISTRER", "Enregistrer")
'Création du menu Edition
Set wMenu = MenuBar1.Controls.AddMenu("Edition", "$EDITION")
Call wMenu.Items.Add(, "$COUPER", "Couper")
Call wMenu.Items.Add(, "$COPIER", "Copier")
Call wMenu.Items.Add(, "$COLLER", "Coller")
End Sub
Chaque menu (Fichier et Edition) est un
objet auquel on ajoute des sous menus (Ouvrir, Ajouter, Enregistrer),
qui sont aussi des objets.
L'objet MenuBarMenu doit recevoir un libellé
(Fichier), et une clé optionelle ($FICHIER). Le signe $ n'est pas
obligatoire, mais j'ai personnellement pris l'habitude de faire précéder
toute clé de collection par un signe $
Chaque sous-menu (MenuBarMenu) ajouté
DOIT posséder une clé. Le premier paramètre indique
l'index (le rang) du sous-menu, en ne le précisant pas (comme dans
ce code), les sous-menus sont placés dans l'ordre de création.
Si nous exécutons notre programme
à ce niveau, nous obtenons une fenêtre avec un menu qui se
comporte de cette manière :
Maintenant que nous avons un menu, il faut
réagir à la sélection d'un des sous-menu.
Pour celà le contrôle MenuBar (qui a pour nom MenuBar1 dans
notre fenêtre d'exemple), met à notre disposition un événement
qui est activé lorsque l'un des items des objets MenuBarMenu est
activé par l'utilisateur. Cet événement est 'MenuClick'
et possède comme paramètre d'entré un pointeur vers
le sous-menu cliqué.
Comme nous avons indiqué pour chaque
sous-menu une clé (vous savez, celle que je fais toujours commencer
par un signe $), il suffit de sélectionner l'action à effectuer
suivant la clé du sous-menu qui vient d'être sélectionné
avec un code comme celui-ci par exemple :
Private Sub MenuBar1_MenuClick(ByVal
Item As MenuBarLib.Item)
Select Case Item.Key
Case "$OUVRIR"
Rem Ajouter le code pour Fichier/Ouvrir ici
Case "$AJOUTER"
Rem Ajouter le code pour Fichier/Ajouter ici
Case "$ENREGISTRER"
Rem Ajouter le code pour Fichier/Enregistrer ici
Case "$COUPER"
Rem Ajouter le code pour Edition/Couper ici
Case "$COPIER"
Rem Ajouter le code pour Edition/Copier ici
Case "$COLLER"
Rem Ajouter le code pour Edition/Coller ici
End Select
End Sub
La suite de cet article à la page
2
|