Accueil
 COURS INFORMATIQUE
 Cours Algorithmique
 Cours ASP
 Cours CSS
 Cours HTML
 Cours PHP / MySQL
 Cours Réseaux
 Cours SQL
 Cours Visual Basic
 ARTICLES
  Conception de sites
  Droit & Internet
  e-commerce
  Société
  Strategies du web
  Technologies Web
  Marketing Web
 LIVRES
  ASP/ASP.Net
  C/C++/C#
  Conception de sites
  DHTML/CSS
  Gestion de Projet
  HTML/Internet
  Java/JSP/J2EE
  JavaScript/VbScript
  Juridique
  Marketing/Stratégie
  PHP/Linux/Unix
  Réseaux
  XML/XHTML/XSL
 NETALYA RECOMMANDE
Reussir un projet de site web

Cours Visual Basic N°9
La gestion des sous-menus

Auteur : Christophe Darmangeat Imprimer ce cours

Un petit point de vocabulaire pour commencer. Le terme menu désigne les choses comme Fichier, Edition, Affichage, etc. Les propositions figurant en dessous de ces menus sont appelées des commandes.

Il va de soi qu'avant de créer un système de menus, mieux vaut savoir ce qu'on va y mettre, comment les commandes seront organisées et à quelle procédure chaque commande sera liée. Une fois cette analyse faite, la réalisation technique n'est pas difficile.

Le fond de l'affaire

Les menus se créent via la fenêtre "Créateur de Menus" (ah ben ça alors, quelle surprise !) ouverte par l'icône du même nom.

Un menu est considéré par VB comme étant un objet, au même Titre qu'un bouton ou qu'une liste. Un menu possède donc une propriété caption et une propriété Name. Il est recommandé que le Name commence par Mnu (MnuFichier, MnuFenêtre, etc.). De la même manière, le nom des commandes inclues dans un menu comprendra le nom du menu (ex : CmdFichierOuvrir, CmdOutilsOrthographe, etc.)

La fenêtre "Créateur de menus" vous donne toute latitude d'éditer vos menus et commandes, autrement dit d'en ajouter, d'en supprimer, etc. Dans la liste des menus et des commandes, la hiérarchie entre menus, commandes et sous-commandes est indiquée par le décalage vers la droite, décalage réglé par les flèches horizontales.

Esthétique et Peaufinage :

  • Lettres soulignées : dans la caption, un & précédant une lettre permet de souligner celle-ci, et de créer ainsi un accès clavier par la touche Alt (ex : &Fichier donnera Fichier). Ceci est également valable pour les commandes.
  • Barres de séparation : une commande ayant comme caption un simple tiret (celui sous le 6 du clavier) apparaîtra comme une barre de séparation entre deux commandes. Notez bien qu'une telle barre est considérée par VB comme une commande à part entière, et doit donc avoir un Name. C'est absurde, mais c'est ainsi.
  • Raccourci clavier : on peut définir des raccourcis clavier (CTRL + quelque chose) qui apparaîtront dans le menu lui-même, comme c'est le cas pour les classiques "couper", "coller" et "copier". Il suffit de remplir la case correspondante dans le Créateur de menus (ceci peut également se programmer via la propriété de l'objet commande concerné)*
  • Ajout de coches devant les commandes : dans le cas de commandes fonctionnant comme des interrupteurs. Il faut régler la propriété checked de la commande, soit via le Créateur de menus, soit dans le programme.
  • Griser une commande : de la même manière que pour n'importe quel objet, ceci s'opère par la propriété Enabled, dans le Créateur de menus ou dans le programme.
  • Rendre des commandes invisibles : là aussi, comme pour n'importe quel objet, il s'agit de la propriété visible.

Sous-menus

On peut souhaiter qu'une commande (suivie dans ce cas du célèbre triangle noir orienté à droite) fasse apparaître un sous-menu (ou si vous préférez, des sous-commandes). On peut pousser le vice jusqu'à créer quatre niveaux de sous-menus…

Il suffit d'opérer dans le Créateur de menus un décalage, exactement comme pour les commandes par opposition aux menus, mais de deux, voire trois, quatre ou cinq (pas plus).

Menus dynamiques

On entend par là des menus capables de se modifier automatiquement en fonction de l'utilisation du logiciel. Le grand classique du genre est le menu Fichier, dans lequel apparaissent les quatre derniers documents ouverts.

Le plus simple est alors de procéder de la manière suivante :

  1. créer les commandes "vides", c'est-à-dire sans leur attribuer de caption, dans le créateur de menus. Dans l'exemple ci-dessus, on prévoirait ainsi 4 commandes vides. Une solution simple est de donner un seul Name et de jouer sur les index, pour pouvoir faire ensuite une boucle.
  2. Il suffit ensuite d'écrire le code modifiant la caption de ces quatre commandes. Naturellement, cela implique également que vous ayez aussi écrit du code permettant à votre application de mémoriser les quatre derniers fichiers ouverts.

Menus contextuels

Je vous rappelle qu'il s'agit généralement de menus apparaissant à l'écran sur un clic droit de la souris, et dont le contenu est lié à la nature de l'objet pointé.

Un clic de souris est un événement dit MouseUp (MouseUp correspond au fait de relâcher le bouton, MouseDown au fait de l'appuyer).

Une procédure se déclenchant lorsqu'on clique du bouton droit sur un objet s'écrira :

Private Sub objet_MouseUp If Button = 2 Then PopupMenu mnuTruc End If End Sub

NB : On teste la variable Button pour savoir quel bouton a été cliqué ; le clic droit et le clic gauche représentent pour VB le même événement (MouseUp) avec une variable possédant deux valeurs différentes, et non deux événements distincts.

L'apparition d'un menu à l'endroit du pointeur de la souris se fait par la méthode PopupMenu. Naturellement, le menu proprement dit (ici MnuTruc) devra avoir été préalablement créé.

Il existe des raffinements sans nom pour faire afficher le menu ailleurs qu'à côté du pointeur, ou dans des positions bizarres… on n'entre pas là-dedans, vous regarderez l'Aide si vraiment vous tenez à vous lancer dans ce genre de choses.

Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur.


Google
 
 RESSOURCES GRATUITES
 Caractères spéciaux
 Code Couleurs HTML
 Générateur Méta Tags
 Références HTML
 Scripts : ASP
 Scripts : Java Scripts
 PRATIQUE / OUTILS
 Salons Informatiques
 Astuces Windows
 TÉLÉCHARGEMENTS
 Utilitaires système
 Logiciels pratiques
 Jeux & démos
 INFOS SITE
 Contacts
 Mentions légales
 Qui sommes-nous ?
 PARTENAIRES
 Jeux et Jouets
 Murielle Cahen
 Cours d'anglais
 Droit NTIC
 Directeur Internet
 Australie
 Création site Internet
 VOD News
 Web Hostings