Utilisation de Hot-Tracking avec des barres d’outils
Quand un pointeur de la souris est placé sur un élément, l’élément devient réactif. Si le suivi à chaud est activé, l’élément réactif est mis en surbrillance. Une barre d’outils créée avec le style à _ deux dimensions TBSTYLE , ou une barre d’outils qui utilise des styles visuels, prend en charge le suivi à chaud par défaut.
Le suivi à chaud requiert la création de listes d’images ; par conséquent, vous ne pouvez pas utiliser le message to _ ADDBITMAP ou la fonction CreateToolbarEx pour créer votre barre d’outils.
Lorsque la souris pointe sur un bouton de barre d’outils, le bouton est entouré pour le mettre en surbrillance. L’illustration suivante montre une barre d’outils avec le suivi actif activé ; le pointeur de la souris est positionné sur le bouton enregistrer au moment où la capture d’écran a été effectuée.

Si vous souhaitez qu’une image bitmap de bouton de barre d’outils change lorsque l’état du contrôle change, stockez les différentes images dans les listes d’images. Par exemple, certaines applications ont des boutons de barre d’outils noir et blanc qui deviennent colorés lorsqu’ils sont sélectionnés. Les deux images différentes sont stockées dans des listes d’images. Les barres d’outils prennent en charge l’utilisation de trois listes d’images. En général, une application a une liste d’images par défaut, désactivée et de suivi à chaud. Pour définir et récupérer des listes d’images pour les boutons de barre d’outils à chaud, utilisez les messages to _ SETHOTIMAGELIST et to _ GETHOTIMAGELIST .
Bon à savoir
Technologies
Prérequis
- C/C++
- Windows Programmation de l’interface utilisateur
Instructions
Utiliser Hot-Tracking avec une barre d’outils
L’exemple de code suivant crée, remplit et assigne une liste d’images pour les boutons actifs.
// Create the image list, himlHot.
g_himlHot = ImageList_Create(MYICON_CX,MYICON_CY,ILC_COLOR8,0,4);
// Load a bitmap from a resource file, and add the images to the image list.
// Note that the bitmap contains four images.
hBitmapHot = LoadBitmap(g_hinst, MAKEINTRESOURCE(IDB_HOT));
ImageList_Add(g_himlHot, hBitmapHot, NULL);
// Set the image list.
SendMessage(hwndTB, TB_SETHOTIMAGELIST, 0, (LPARAM)g_himlHot);
// Loop to fill the array of TBBUTTON structures.
for(i=0;i<MAX_BUTTONS;i++)
{
tbArray[i].iBitmap = i; // Bitmap from image list.
tbArray[i].idCommand = IDM_BUTTONSTART + i;
tbArray[i].fsState = TBSTATE_ENABLED;
tbArray[i].fsStyle = BTNS_DROPDOWN;
tbArray[i].dwData = 0;
tbArray[i].iString = i;
}
DeleteObject(hBitmapHot); // Delete the loaded bitmap.