Une application Windows digne de ce nom est fréquemment pilotée par des menus. Avant d'aller plus loin, examinons quelques points de vocabulaire :
Concevoir des menus pour une application VB est d'une simplicité confondante, dans la mesure où il existe un outil spécial : le créateur de menus, accessible par la commande Outils - Créateur de Menus. Ensuite, c'est une affaire de quelques minutes de prise en main.
Cet outil fait apparaître l'ensemble de la structure des menus d'une Form donnée, et nous permet de la gérer. Le seul point à comprendre est que chaque élément de menu, pour VB, est un objet, et à ce titre possède donc un certain nombre de propriétés :
Caption : le texte du menu, tel qu'il apparaît à l'écran (ex : Fichier, Edition, Affichage, etc.)
Name : le nom de cet élément de menu pour l'application.
Checked : indique si l'élément de menu est coché par un petit "v" à sa gauche
Enabled : indique si l'élément de menu est actif ou inactif
Dans la liste des menus, les niveaux des retraits indiquent le niveau des menus. Les séparateurs correspondent tout simplement à des éléments qui ont un Name, mais dont le Caption est un simple trait d'union.
Ensuite, chaque élément de menu, qui je le rappelle, est un objet, va pouvoir déclencher un traitement par la programmation de la procédure qui lui sera associée :
Private Sub NameElementMenu_Click()
...
End Sub
Et voilà, c'est aussi simple que cela. Un petit entraînement ?
Nom de l'exercice Exécutable Sources
Au Tord-Boyaux
VB permet également de programmer des menus dits pop-up ou contextuels. En deux mots : après avoir créé le menu par le créateur de menus, il suffit en quelque sorte de l'appeler par le code adéquat, en l'occurrence :
Popupmenu NameDuMenu, ConstanteVb
Cette instruction Popupmenu sera le plus souvent placée dans une procédure MouseDown, après un test vérifiant que c'est bien le bouton droit qui a été enfoncé. Mais on peut imaginer des menus contextuels apparaissant à d'autres occasions. Quant à la constante vb qui conclut l'instruction, elle indique le positionnement du menu par rapport à la souris (voir l'aide VB sur ce point précis).
Enfin, pour qu'un menu soit exclusivement contextuel et n'apparaisse pas en permanence dans la barre de menus du haut de la Form, il suffit de mettre dans le créateur de menus sa propriété Visible à False, et le tour est joué.
Le bonheur, cela tient parfois à peu de choses.