2008-09-16 4 views

Répondre

0

Que voulez-vous dire par "infini"? Si vous voulez dire une barre de défilement où l'utilisateur ne peut jamais faire défiler jusqu'aux extrémités, vous devez gérer les notifications de changement de position de la barre de défilement et réinitialiser la position au milieu.

2

Il existe trois façons de faire des barres de défilement: la barre de défilement d'une fenêtre; un contrôle de barre de défilement; ou un contrôle personnalisé.

Les fenêtres ont des barres de défilement dans la zone non-client (NC). Ceux-ci font partie du cadre de la fenêtre, et en tant que tels, ils n'ont pas leur propre poignée de fenêtre ou quoi que ce soit.

Les commandes de barre de défilement sont des implémentations de fenêtre enfant d'une barre de défilement. Parce qu'ils sont des fenêtres d'enfants, ils vous offrent un peu plus de flexibilité. Vous pourriez sous-classer ou surclasser l'un de ces contrôles pour implémenter une fonctionnalité «infinie».

La dernière option est un contrôle personnalisé: vous venez de créer votre propre barre de défilement à partir de zéro. Créez une fenêtre enfant unique, dessinez-la vous-même, gérez vous-même toutes les entrées de la souris et du clavier et implémentez vous-même les messages de la barre de défilement. Ce n'est pas vraiment aussi dur que cela puisse paraître.

Je recommanderais probablement superclassing un contrôle de barre de défilement. Traitez les messages de défilement dans votre propre barre de défilement wndproc, et revenez à la barre de défilement standard wndproc pour la peinture et autres.

Questions connexes