Barras de rolagem simples
O Microsoft Internet Explorer 4.0 introduziu uma nova tecnologia visual chamada barras de rolagem simples. Funcionalmente, as barras de rolagem planas se comportam como barras de rolagem padrão. A diferença é que você pode personalizar sua aparência em uma extensão maior do que as barras de rolagem padrão.
A ilustração a seguir mostra uma janela que contém uma barra de rolagem plana.
Nota
As barras de rolagem simples têm suporte Comctl32.dll versões 4.71 a 5.82. Comctl32.dll versões 6.00 e posteriores não dão suporte a barras de rolagem simples.
Usando barras de rolagem simples
Esta seção descreve como implementar barras de rolagem simples em seu aplicativo.
Antes de começar
Para usar as funções de barra de rolagem simples, você deve incluir Commctrl.h em seus arquivos de origem e vincular com Comctl32.lib.
Adicionando barras de rolagem simples a uma janela
Para adicionar barras de rolagem simples a uma janela, chame InitializeFlatSB, passando o identificador para a janela. Em vez de usar as funções de barra de rolagem padrão para manipular as barras de rolagem, você deve usar a função de FlatSB_XXX equivalente. Há funções de barra de rolagem simples para definir e recuperar as informações de rolagem, o intervalo e a posição. Se as barras de rolagem simples não tiverem sido inicializadas para sua janela, a API da barra de rolagem plana adiará para as funções padrão correspondentes, se alguma for usada. Isso permite ativar e desativar barras de rolagem simples sem precisar escrever código condicional.
Como um aplicativo pode ter definido métricas personalizadas para suas barras de rolagem planas, elas não são atualizadas automaticamente quando as métricas do sistema são alteradas. Quando as métricas da barra de rolagem do sistema são alteradas, uma mensagem WM_SETTINGCHANGE é transmitida, com seu wParam definido como SPI_SETNONCLIENTMETRICS. Para atualizar as barras de rolagem simples para as novas métricas do sistema, os aplicativos devem lidar com essa mensagem e alterar explicitamente as propriedades dependentes da métrica da barra de rolagem simples.
Para atualizar as propriedades da barra de rolagem, use FlatSB_SetScrollProp. O fragmento de código a seguir altera as propriedades dependentes da métrica de uma barra de rolagem simples para os valores atuais do sistema.
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);
}
Aprimorando barras de rolagem simples
FlatSB_SetScrollProp permite modificar as barras de rolagem planas para personalizar a aparência da janela. Para barras de rolagem verticais, você pode alterar a largura da barra e a altura das setas de direção. Para barras de rolagem horizontais, você pode alterar a altura da barra e a largura das setas de direção. Você também pode alterar a cor da tela de fundo das barras de rolagem horizontal e vertical.
FlatSB_SetScrollProp também permite personalizar como as barras de rolagem planas são exibidas. Alterando as propriedades WSB_PROP_VSTYLE e WSB_PROP_HSTYLE, você pode definir o tipo de barra de rolagem que deseja usar. Três estilos estão disponíveis.
Estilo | Descrição |
---|---|
FSB_ENCARTA_MODE | Uma barra de rolagem plana padrão é exibida. Quando o mouse se move sobre um botão de direção ou o polegar, essa parte da barra de rolagem será exibida em 3D. |
FSB_FLAT_MODE | Uma barra de rolagem plana padrão é exibida. Quando o mouse se move sobre um botão de direção ou o polegar, essa parte da barra de rolagem será exibida em cores invertidas. |
FSB_REGULAR_MODE | Uma barra de rolagem normal e não núm é exibida. Nenhum efeito visual especial será aplicado. |
Removendo barras de rolagem simples
Se você quiser remover barras de rolagem planas da janela, chame a função UninitializeFlatSB, passando o identificador para a janela. Essa função remove apenas barras de rolagem planas da janela em tempo de execução. Você não precisa chamar essa função quando sua janela é destruída.