Comment utiliser Hot-Tracking avec des barres d’outils

Lorsqu’un pointeur de souris pointe sur un élément, l’élément devient chaud. Si le suivi à chaud est activé, l’élément chaud est mis en surbrillance. Une barre d’outils créée avec le style TBSTYLE_FLAT , ou une barre d’outils qui utilise des styles visuels, prend en charge le suivi à chaud par défaut.

Le suivi à chaud nécessite la création de listes d’images ; Par conséquent, vous ne pouvez pas utiliser le message TB_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 mis en évidence pour le mettre en surbrillance. L’illustration suivante montre une barre d’outils avec le suivi à chaud activé ; le pointeur de la souris pointait sur le bouton Enregistrer lors de la capture d’écran.

capture d’écran d’une boîte de dialogue avec une barre d’outils à trois éléments ; l’icône sélectionnée est décrite

Si vous souhaitez qu’une 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 au maximum. 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 chaudes, utilisez les messages TB_SETHOTIMAGELIST et TB_GETHOTIMAGELIST .

Bon à savoir

Technologies

Prérequis

  • C/C++
  • Programmation de l’interface utilisateur Windows

Instructions

Utiliser Hot-Tracking avec une barre d’outils

L’exemple de code suivant crée, remplit et affecte une liste d’images pour les boutons chauds.

// 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.

Utilisation des contrôles de barre d’outils

Démonstration des contrôles communs Windows (CppWindowsCommonControls)