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.

Usando controles da barra de controle