Cómo limitar el movimiento del control deslizante

Como se describe en Acerca de los controles trackbar, es posible desactivar parte del intervalo de la barra de seguimiento como un intervalo de selección. Un propósito de un intervalo de selección podría ser limitar el movimiento del control deslizante, lo que hace que algunas partes del intervalo completo estén fuera de los límites.

Lo que necesita saber

Tecnologías

Requisitos previos

  • C/C++
  • programación de la interfaz de usuario de Windows

Instructions

Limitar el movimiento del control deslizante

El código de ejemplo siguiente limita el movimiento del control deslizante restableciendo la posición del control deslizante cada vez que se mueve fuera del intervalo de selección.

case WM_HSCROLL:
    {
        HWND hTrackbar = GetDlgItem(hDlg, IDC_SLIDER1);
        
        if (hTrackbar == (HWND)lParam)
        {
            int newPos    = SendMessage(hTrackbar, TBM_GETPOS, 0, 0);
            int selStart  = SendMessage(hTrackbar, TBM_GETSELSTART, 0, 0);
            int selEnd    = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);
            
            if (newPos > selEnd)
            {
                SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)selEnd);
            }
            
            else if (newPos < selStart)
            {
                SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)selStart);
            }
        }
        
        break;
    }

Comentarios

Este fragmento de código formaría parte del procedimiento de ventana de un cuadro de diálogo.

Uso de controles trackbar