Sobre controles de rebar

Um controle Rebar atua como um contêiner para janelas filhas. Ele pode conter uma ou mais bandas, e cada banda pode ter qualquer combinação de uma barra de garra, um bitmap, um rótulo de texto e uma janela filha. Um aplicativo atribui uma janela filho — normalmente outro controle — a uma banda de controle de vergalhão. À medida que você reposiciona dinamicamente uma faixa de controle de vergalhão, o controle de vergalhão gerencia o tamanho e a posição da janela filho atribuída a essa faixa. Além disso, um aplicativo pode especificar um bitmap de plano de fundo para uma banda, e o controle de vergalhão exibirá a janela filho da banda sobre o bitmap.

A captura de tela a seguir mostra um controle de vergalhão que tem duas bandas. Um contém uma barra de ferramentas e o outro contém uma caixa de combinação. Ambas as bandas têm uma garra que permite que elas sejam movidas e redimensionadas.

screen shot of dialog box showing a rebar control with a band containing a toolbar and a band containing a combo box

Observação

O controle de vergalhão é implementado na versão 4.70 e posterior do Comctl32.dll.

 

Bandas de vergalhões e janelas infantis

Um aplicativo define as características de uma banda de vergalhão usando as mensagens RB_INSERTBAND e RB_SETBANDINFO. Essas mensagens aceitam o endereço de uma estrutura REBARBANDINFO como o parâmetro lParam . Os membros da estrutura REBARBANDINFO definem os traços de uma determinada banda. Para definir as características de uma banda, defina o membro cbsize para indicar o tamanho da estrutura, em bytes. Em seguida, defina o membro fMask para indicar quais membros da estrutura seu aplicativo está preenchendo.

Para atribuir uma janela filho a uma banda, inclua o sinalizador RBBIM_CHILD no membro fMask da estrutura REBARBANDINFO e defina o membro hwndChild como o identificador da janela filho. Os aplicativos podem definir a largura e a altura mínimas permitidas de uma janela filho nos membros cxMinChild e cyMinChild .

Quando um controle de vergalhão é destruído, ele destrói todas as janelas infantis atribuídas às bandas dentro dele. Para impedir que o controle destrua janelas filho atribuídas a suas bandas, remova as bandas enviando a mensagem RB_DELETEBAND e use a mensagem RB_SETPARENT para redefinir o pai para outra janela antes de destruir o controle de vergalhão.

A interface do usuário do controle de vergalhão

Todas as faixas de controle rebar podem ser redimensionadas, exceto aquelas que usam o estilo RBBS_FIXEDSIZE. Para redimensionar ou alterar a ordem das bandas dentro do controle, clique e arraste a barra de garras de uma banda. O controle de vergalhão redimensiona e reposiciona automaticamente as janelas filhas atribuídas às suas bandas. Além disso, você pode alternar o tamanho de uma faixa clicando no texto da banda, se houver.

Lista de imagens do controle de vergalhão

Se um aplicativo estiver usando uma lista de imagens com um controle de vergalhão, ele deverá enviar a mensagem RB_SETBARINFO antes de adicionar bandas ao controle. Esta mensagem aceita o endereço de uma estrutura REBARINFO como o parâmetro lParam . Antes de enviar a mensagem, prepare a estrutura REBARINFO definindo o membro cbSize para o tamanho da estrutura, em bytes. Em seguida, se o controle de vergalhão for exibir imagens nas bandas, defina o membro fMask como o sinalizador RBIM_IMAGELIST e atribua um identificador de lista de imagens ao membro himl. Se o vergalhão não usar imagens de banda, defina fMask como zero.

Controle de vergalhão Encaminhamento de mensagens

Um controle de vergalhão encaminha todas as mensagens da janela WM_NOTIFY para sua janela pai. Além disso, um controle de vergalhão encaminha todas as mensagens enviadas a ele a partir de janelas atribuídas a suas bandas, como WM_CHARTOITEM, WM_COMMAND e outros.