Barres de défilement plat
Microsoft Internet Explorer 4.0 a introduit une nouvelle technologie visuelle appelée barres de défilement plates. Fonctionnellement, les barres de défilement plates se comportent comme des barres de défilement standard. La différence est que vous pouvez personnaliser leur apparence dans une plus grande mesure que les barres de défilement standard.
L’illustration suivante montre une fenêtre qui contient une barre de défilement plate.
Note
Les barres de défilement plates sont prises en charge par Comctl32.dll versions 4.71 à 5.82. Comctl32.dll versions 6.00 et ultérieures ne prennent pas en charge les barres de défilement plates.
Utilisation de barres de défilement plat
Cette section explique comment implémenter des barres de défilement plates dans votre application.
Avant de commencer
Pour utiliser les fonctions de barre de défilement plate, vous devez inclure Commctrl.h dans vos fichiers sources et lier avec Comctl32.lib.
Ajout de barres de défilement plat à une fenêtre
Pour ajouter des barres de défilement plates à une fenêtre, appelez InitializeFlatSB, en passant la poignée à la fenêtre. Au lieu d’utiliser les fonctions de barre de défilement standard pour manipuler vos barres de défilement, vous devez utiliser la fonction FlatSB_XXX équivalente. Il existe des fonctions de barre de défilement plate pour définir et récupérer les informations de défilement, la plage et la position. Si les barres de défilement plates n’ont pas été initialisées pour votre fenêtre, l’API de barre de défilement plate différera vers les fonctions standard correspondantes, le cas échéant. Cela vous permet d’activer et de désactiver les barres de défilement plates sans avoir à écrire de code conditionnel.
Étant donné qu’une application peut avoir défini des métriques personnalisées pour ses barres de défilement plat, elles ne sont pas automatiquement mises à jour lorsque les métriques système changent. Lorsque les métriques de barre de défilement système changent, un message WM_SETTINGCHANGE est diffusé, avec son wParam défini sur SPI_SETNONCLIENTMETRICS. Pour mettre à jour les barres de défilement plates vers les nouvelles métriques système, les applications doivent gérer ce message et modifier explicitement les propriétés dépendantes de la barre de défilement plate.
Pour mettre à jour vos propriétés de barre de défilement, utilisez FlatSB_SetScrollProp. Le fragment de code suivant modifie les propriétés dépendantes de la barre de défilement plate en fonction des valeurs système actuelles.
void FlatSB_UpdateMetrics(HWND hWnd)
{
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXVSCROLL, GetSystemMetrics(SM_CXVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHSCROLL, GetSystemMetrics(SM_CXHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVSCROLL, GetSystemMetrics(SM_CYVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYHSCROLL, GetSystemMetrics(SM_CYHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHTHUMB, GetSystemMetrics(SM_CXHTHUMB), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVTHUMB, GetSystemMetrics(SM_CYVTHUMB), TRUE);
}
Amélioration des barres de défilement plat
FlatSB_SetScrollProp vous permet de modifier les barres de défilement plates pour personnaliser l’apparence de votre fenêtre. Pour les barres de défilement verticales, vous pouvez modifier la largeur de la barre et la hauteur des flèches de direction. Pour les barres de défilement horizontales, vous pouvez modifier la hauteur de la barre et la largeur des flèches de direction. Vous pouvez également modifier la couleur d’arrière-plan des barres de défilement horizontales et verticales.
FlatSB_SetScrollProp vous permet également de personnaliser la façon dont les barres de défilement plates sont affichées. En modifiant les propriétés WSB_PROP_VSTYLE et WSB_PROP_HSTYLE, vous pouvez définir le type de barre de défilement que vous souhaitez utiliser. Trois styles sont disponibles.
Style | Description |
---|---|
FSB_ENCARTA_MODE | Une barre de défilement plate standard s’affiche. Lorsque la souris se déplace sur un bouton de direction ou le pouce, cette partie de la barre de défilement s’affiche en 3D. |
FSB_FLAT_MODE | Une barre de défilement plate standard s’affiche. Lorsque la souris se déplace sur un bouton direction ou le pouce, cette partie de la barre de défilement s’affiche en couleurs inversées. |
FSB_REGULAR_MODE | Une barre de défilement normale et nonflat s’affiche. Aucun effet visuel spécial n’est appliqué. |
Suppression des barres de défilement plat
Si vous souhaitez supprimer des barres de défilement plates de votre fenêtre, appelez la fonction UninitializeFlatSB, en passant la poignée à la fenêtre. Cette fonction supprime uniquement les barres de défilement plates de votre fenêtre au moment de l’exécution. Vous n’avez pas besoin d’appeler cette fonction lorsque votre fenêtre est détruite.