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:



Image non trouvée !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:


Image non trouvée !

La prochaine fois j'utiliserai un générateur, c'est plus bavard, mais c'est plus simple...