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.

capture d’écran d’une fenêtre contenant une barre de défilement plate

Notes

Les barres de défilement plats 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 plat, vous devez inclure Commctrl.h dans vos fichiers sources et établir un lien 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 plat n’ont pas été initialisées pour votre fenêtre, l’API de barre de défilement plate s’en remet aux 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 du 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 la 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 des métriques de la barre de défilement plat.

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 des métriques d’une barre de défilement plat en 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 l’affichage des barres de défilement plates. 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 sur 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 de direction ou le pouce, cette partie de la barre de défilement s’affiche dans des couleurs inversées.
FSB_REGULAR_MODE Une barre de défilement normale et non rapide s’affiche. Aucun effet visuel spécial n’est appliqué.

 

Suppression des barres de défilement plats

Si vous souhaitez supprimer les 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.