Création à la main d'un script de ressource pour les menus
Nous reprendrons alors les trois caractèristiques définies dans le chapitre principe.
Voici un exemple de script:
Explications:
Les { } ou qui peut être aussi BEGIN et END indiquent le début et la fin d'un bloc...
Le menu se nomme monmenu et pourra aussi être un numéro.
Les options de MENU:
[chargement] : PRELOAD pour charger le menu en mémoire lorsque le programme
est chargé, LOADONCALL, dans ce cas le chargement ne se fera que si nécessaire
en mémoire (option par défaut).
[memoire] : FIXED, MOVEABLE et DISCARDABLE (Les deux dernières étant
les options par défaut).
Les éléments d'un menu:
Le menu principal sera composé des éléments "Fichier"
et "options" dans notre exmple.
On notera le &: Il permet d'indiquer que la lettre suivante est la lettre
à utiliser comme raccourcie clavier. Elle sera alors automatiquement
soulignée par Windows...
MENUITEM "texte", wID [,options]: Dans ce cas, il n'y a pas de sous
menu. Windows devrait donc normalement informer notre programme de l'option
choisi (en fait, tout dépendra du champ [options], mais nous allons y
revenir).
ou
POPUP "Texte" [,options]: Dans ce cas, Windows devrait ouvrir un nouveau
menu (là aussi, tout dépendra du champ [options]).
wID : identificateur du menu sélectionné que notre programme
recevra. Il doit donc être unique par option de menu.
on utilisera généralement des constantes définies dans
un fichier en-tête. Ces constantes ayant un nom commençant par
IDM...
Les commandes MENUITEM et POPUP au niveau d'un menu général acceptent les options suivantes:
GRAYED : l'élément est inactif et n'engendre pas de message.
Le texte est grisé
INACTIVE : l'élément est inactif et n'engendre pas de message.
Le texte n'est pas grisé
MENUBREAK : Cet élément et les suivants apparaîtrons sur
une nouvelle ligne du menu général (rarement utilisé, je
ne l'ai même jamais vu !)
HELP : Combiné avec \a devant le texte, l'élément sera
alors justifié à droite.
On pourra utiliser | pour combiner les options. Ne marchera évidemment pas avec GRAYED et INACTIVE !
Commande particulière:
MENUITEM SEPARATOR qui dessine une barre horizontale pour différencier
une série d'option d'une autre dans un menu popup.
On peut utiliser:
\t pour que le texte qui suit soit placé dans une nouvelle colonne
suffisamment espacé sur la droite pour que la première colonne
du popup puisse accueillir sa plus longue chaîne.
\a justifie à droite le texte qui le suit.
Dans un menu Popup, on peut ajouter les options suivant à la commande MENUITEM:
CHECKED : L'option apparaîtra alors coché.
MENUBREAK : Cette fois-ci, l'option apparaîtra dans une nouvelle colonne
MENUBARBREAK : idem que MENUBREAK, mais apparaîtra en plus une ligne verticale
pour séparer les colonnes.
On ne pourra évidemment pas combiner MENUBREAK et MENUBARBREAK
Remarque:
On ne mettra pas les valeurs dans le script, mais on utilisera plutôt un fichier include dans lequel sera défini les constantes utilisées pour notre script ainsi que dans notre programme par la suite.
Exemple:
Le fichier ressource:
On
notera que j'ai utilisé BEGIN et END cette fois-ci au lieu de { et }
mais cela revient au même.
Et l'include:
La prochaine fois j'utiliserai un générateur, c'est plus bavard, mais c'est plus simple...