Como processar mensagens de notificação da barra de controle
As barras de controle notificam a janela pai sobre as ações do usuário enviando ao pai uma mensagem WM_HSCROLL ou WM_VSCROLL.
O que você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Processar mensagens de notificação da barra de controle
O exemplo de código a seguir é uma função que é chamada quando a janela pai da barra de controle recebe uma mensagem de WM_HSCROLL . A barra de faixas neste exemplo tem o estilo TBS_ENABLESELRANGE . A posição do controle deslizante é comparada ao intervalo de seleção, e o controle deslizante é movido para a posição inicial ou final do intervalo de seleção quando necessário.
// TBNotifications - handles trackbar notifications received
// in the wParam parameter of WM_HSCROLL. This function simply
// ensures that the slider remains within the selection range.
VOID WINAPI TBNotifications(
WPARAM wParam, // wParam of WM_HSCROLL message
HWND hwndTrack, // handle of trackbar window
UINT iSelMin, // minimum value of trackbar selection
UINT iSelMax) // maximum value of trackbar selection
{
DWORD dwPos; // current position of slider
switch (LOWORD(wParam)) {
case TB_ENDTRACK:
dwPos = SendMessage(hwndTrack, TBM_GETPOS, 0, 0);
if (dwPos > iSelMax)
SendMessage(hwndTrack, TBM_SETPOS,
(WPARAM) TRUE, // redraw flag
(LPARAM) iSelMax);
else if (dwPos < iSelMin)
SendMessage(hwndTrack, TBM_SETPOS,
(WPARAM) TRUE, // redraw flag
(LPARAM) iSelMin);
break;
default:
break;
}
}
Comentários
Uma caixa de diálogo que contém uma barra de controle de estilo TBS_VERT pode usar essa função quando recebe uma mensagem WM_VSCROLL.
Tópicos relacionados