Compartir vía


Barras de desplazamiento plano

Microsoft Internet Explorer 4.0 introdujo una nueva tecnología visual denominada barras de desplazamiento plano. Funcionalmente, las barras de desplazamiento plano se comportan igual que las barras de desplazamiento estándar. La diferencia es que puede personalizar su apariencia en mayor medida que las barras de desplazamiento estándar.

En la ilustración siguiente se muestra una ventana que contiene una barra de desplazamiento plana.

captura de pantalla de una ventana que contiene una barra de desplazamiento plana

Nota

Las barras de desplazamiento plano son compatibles con las versiones 4.71 a 5.82 de Comctl32.dll. Comctl32.dll versiones 6.00 y posteriores no admiten barras de desplazamiento plano.

 

Uso de barras de desplazamiento plano

En esta sección se describe cómo implementar barras de desplazamiento plano en la aplicación.

Antes de empezar

Para usar las funciones de barra de desplazamiento plano, debe incluir Commctrl.h en los archivos de origen y vincular con Comctl32.lib.

Agregar barras de desplazamiento plano a una ventana

Para agregar barras de desplazamiento planas a una ventana, llame a InitializeFlatSB y pase el identificador a la ventana. En lugar de usar las funciones de barra de desplazamiento estándar para manipular las barras de desplazamiento, debe usar la función FlatSB_XXX equivalente. Hay funciones de barra de desplazamiento planas para establecer y recuperar la información de desplazamiento, el intervalo y la posición. Si no se han inicializado barras de desplazamiento plano para la ventana, la API de barra de desplazamiento plano se aplazará a las funciones estándar correspondientes, si se usa alguna. Esto le permite activar y desactivar las barras de desplazamiento planas sin tener que escribir código condicional.

Dado que una aplicación puede haber establecido métricas personalizadas para sus barras de desplazamiento plano, no se actualizan automáticamente cuando cambian las métricas del sistema. Cuando cambian las métricas de la barra de desplazamiento del sistema, se difunde un mensaje de WM_SETTINGCHANGE , con su wParam establecido en SPI_SETNONCLIENTMETRICS. Para actualizar las barras de desplazamiento plano a las nuevas métricas del sistema, las aplicaciones deben controlar este mensaje y cambiar explícitamente las propiedades dependientes de métricas de la barra de desplazamiento plano.

Para actualizar las propiedades de la barra de desplazamiento, use FlatSB_SetScrollProp. El fragmento de código siguiente cambia las propiedades dependientes de métricas de una barra de desplazamiento plana a los valores del sistema actuales.

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);
}

Mejora de las barras de desplazamiento planas

FlatSB_SetScrollProp permite modificar las barras de desplazamiento plano para personalizar el aspecto de la ventana. Para las barras de desplazamiento verticales, puede cambiar el ancho de la barra y el alto de las flechas de dirección. Para las barras de desplazamiento horizontales, puede cambiar el alto de la barra y el ancho de las flechas de dirección. También puede cambiar el color de fondo de las barras de desplazamiento horizontal y vertical.

FlatSB_SetScrollProp también permite personalizar cómo se muestran las barras de desplazamiento plano. Al cambiar las propiedades WSB_PROP_VSTYLE y WSB_PROP_HSTYLE, puede establecer el tipo de barra de desplazamiento que desea usar. Hay tres estilos disponibles.

Estilo Descripción
FSB_ENCARTA_MODE Se muestra una barra de desplazamiento plana estándar. Cuando el mouse se mueve sobre un botón de dirección o el pulgar, esa parte de la barra de desplazamiento se mostrará en 3D.
FSB_FLAT_MODE Se muestra una barra de desplazamiento plana estándar. Cuando el mouse se mueve sobre un botón de dirección o el pulgar, esa parte de la barra de desplazamiento se mostrará en colores invertidos.
FSB_REGULAR_MODE Se muestra una barra de desplazamiento normal y no flotante. No se aplicará ningún efecto visual especial.

 

Quitar barras de desplazamiento planas

Si desea quitar barras de desplazamiento plano de la ventana, llame a la función UninitializeFlatSB y pase el identificador a la ventana. Esta función solo quita las barras de desplazamiento planas de la ventana en tiempo de ejecución. No es necesario llamar a esta función cuando se destruye la ventana.