Ascenseurs et clavier

 

 

 

Maintenant que vous avez vu comment traiter les messages concernant le clavier, revenons un instant sur les ascenseurs. Vous aviez vu dans le chapitre correspondant que le clavier n'était pas géré.

Or il serait dommage de ne pas pouvoir utiliser des commandes comme simplement les flêches pour se déplacer dans un texte, tout en n'ayant pas de maj automatique de la position de l'ascenseur !

Donc corrigeons tout cela pour remettre à jour la position de l'ascenseur !

Cependant, je ne vais pas m'amuser à dupliquer le code de gestion de l'ascenseur dans le traitement du clavier. D'abord parce que je suis fainéant, moins j'en fais, mieux je me porte. Ensuite, parce que cela rendrait plus difficile la maintenance. Toutes modifications du code concernant la gestion des ascenseurs seraient à reporter dans le code de gestion du clavier ! Galère !

L'idée est donc de réutiliser ce que nous avons déjà. Or vous avez déjà vu une fonction intéressante : SendMessage () qui permet d'envoyer un message à une fenêtre !

Donc lorsque l'utilisateur va appuyer sur une touche, nous allons simplement renvoyer un message correspondant à l'action que l'on désire faire sur l'ascenseur, ce qui donne par exemple:

 

Dans l'exemple qui suit, je me contenterai d'affecter des touches qu'à la barre d'ascenseur vertical. Il faudra très légèrement modifier ce code pour faire de même avec la barre horizontale !


Vous pouvez maintenant réellement profiter des évènements SB_TOP et SB_BOTTOM pour forcer le curseur de l'ascenseur à se positionner au début ou à la fin de votre texte.

 

D'où le nouveau code:

Image non trouvée !


Pour entraînement facile, modifiez le code pour gérer l'ascenseur horizontal !