Compartir vía


Uso de Hot-Tracking con barras de herramientas

Cuando un puntero del mouse mantiene el puntero sobre un elemento, el elemento se vuelve activo. Si el seguimiento activo está habilitado, se resalta el elemento activo. Una barra de herramientas que se crea con el estilo de TBSTYLE_FLAT , o una que usa estilos visuales, admite el seguimiento frecuente de forma predeterminada.

El seguimiento frecuente requiere que cree listas de imágenes; por lo tanto, no puede usar el mensaje TB_ADDBITMAP o la función CreateToolbarEx para crear la barra de herramientas.

Cuando el mouse mantiene el mouse sobre un botón de barra de herramientas, se describe para resaltarlo. En la ilustración siguiente se muestra una barra de herramientas con seguimiento activo habilitado; el puntero del mouse estaba al mantener el puntero sobre el botón Guardar cuando se tomó la captura de pantalla.

captura de pantalla de un cuadro de diálogo con una barra de herramientas de tres elementos; el icono seleccionado se describe

Si desea que un mapa de bits del botón de la barra de herramientas cambie cuando cambie el estado del control, almacene las distintas imágenes en las listas de imágenes. Por ejemplo, algunas aplicaciones tienen botones de barra de herramientas blanco y negro que se colorea cuando se seleccionan. Las dos imágenes diferentes se almacenan en listas de imágenes. Las barras de herramientas admiten el uso de hasta tres listas de imágenes. Normalmente, una aplicación tiene una lista de seguimiento activa, deshabilitada y predeterminada de imágenes. Para establecer y recuperar listas de imágenes para los botones de la barra de herramientas activa, use los mensajes de TB_SETHOTIMAGELIST y TB_GETHOTIMAGELIST .

Lo que necesita saber

Tecnologías

Requisitos previos

  • C/C++
  • Programación de la interfaz de usuario de Windows

Instrucciones

Uso de Hot-Tracking con una barra de herramientas

En el ejemplo de código siguiente se crean, rellenan y asignan una lista de imágenes para los botones de acceso rápido.

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

Usar controles de barra de herramientas

Demostración de controles comunes de Windows (CppWindowsCommonControls)