Cómo limitar el movimiento del control deslizante

Como se describe en Acerca de los controles dela barra de seguimiento , 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 no se limiten.

Lo que necesita saber

Tecnologías

Prerrequisitos

  • C/C++
  • Windows Interfaz de usuario programación

Instructions

Limitar movimiento del control deslizante

El código de ejemplo siguiente limita el movimiento del control deslizante mediante el restablecimiento de 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.

Usar controles trackbar