Compartir vía


Clase CSliderCtrl

Proporciona la funcionalidad del control deslizante común de Windows.

Sintaxis

class CSliderCtrl : public CWnd

Miembros

Constructores públicos

Nombre Descripción
CSliderCtrl::CSliderCtrl Construye un objeto CSliderCtrl.

Métodos públicos

Nombre Descripción
CSliderCtrl::ClearSel Borra la selección actual en un control deslizante.
CSliderCtrl::ClearTics Quita las marcas de graduación actuales de un control deslizante.
CSliderCtrl::Create Crea un control deslizante y lo asocia a un objeto CSliderCtrl.
CSliderCtrl::CreateEx Crea un control deslizante con los estilos extendidos de Windows especificados y lo adjunta a un objeto CSliderCtrl.
CSliderCtrl::GetBuddy Recupera el identificador de una ventana del compañero de control deslizante en una ubicación determinada.
CSliderCtrl::GetChannelRect Recupera el tamaño del canal del control deslizante.
CSliderCtrl::GetLineSize Recupera el tamaño de línea de un control deslizante.
CSliderCtrl::GetNumTics Recupera el número de marcas de graduación en un control deslizante.
CSliderCtrl::GetPageSize Recupera el tamaño de página de un control deslizante.
CSliderCtrl::GetPos Establece la posición actual del control deslizante.
CSliderCtrl::GetRange Recupera las posiciones mínimas y máximas de un control deslizante.
CSliderCtrl::GetRangeMax Recupera la posición máxima de un control deslizante.
CSliderCtrl::GetRangeMin Recupera la posición mínima de un control deslizante.
CSliderCtrl::GetSelection Recupera el intervalo de la selección actual.
CSliderCtrl::GetThumbLength Recupera la longitud del control deslizante en el control de barra de seguimiento actual.
CSliderCtrl::GetThumbRect Recupera el tamaño de la miniatura del control deslizante.
CSliderCtrl::GetTic Recupera el tamaño y la posición de la marca especificada.
CSliderCtrl::GetTicArray Recupera la matriz de posiciones de marcas de graduación para un control deslizante.
CSliderCtrl::GetTicPos Recupera la posición de la marca de graduación especificada, en coordenadas de cliente.
CSliderCtrl::GetToolTips Recupera el identificador del control de información sobre herramientas asignado al control deslizante, si existe.
CSliderCtrl::SetBuddy Asigna una ventana como ventana de compañero para un control deslizante.
CSliderCtrl::SetLineSize Establece el tamaño de línea de un control deslizante.
CSliderCtrl::SetPageSize Establece el tamaño de página de un control deslizante.
CSliderCtrl::SetPos Establece la posición actual del control deslizante.
CSliderCtrl::SetRange Establece las posiciones mínimas y máximas de un control deslizante.
CSliderCtrl::SetRangeMax Establece la posición máxima de un control deslizante.
CSliderCtrl::SetRangeMin Establece la posición mínima de un control deslizante.
CSliderCtrl::SetSelection Establece el intervalo de la selección actual.
CSliderCtrl::SetThumbLength Establece la longitud del control deslizante en el control de barra de seguimiento actual.
CSliderCtrl::SetTic Establece el tamaño y la posición de la marca especificada.
CSliderCtrl::SetTicFreq Establece la frecuencia de marcas de graduación por incremento de control deslizante.
CSliderCtrl::SetTipSide Coloca un control de información sobre herramientas utilizado por un control de barra de seguimiento.
CSliderCtrl::SetToolTips Asigna un control de información sobre herramientas a un control deslizante.

Comentarios

Un «control deslizante» (también conocido como barra de seguimiento) es una ventana que contiene un control deslizante y marcas de graduación opcionales. Cuando el usuario mueve el control deslizante, utilizando el ratón o las teclas de dirección, el control envía mensajes de notificación para indicar el cambio.

Los controles deslizantes son útiles cuando desea que el usuario seleccione un valor discreto o un conjunto de valores consecutivos en un rango. Por ejemplo, puedes usar un control deslizante para permitir al usuario establecer la velocidad de repetición del teclado moviendo el control deslizante a una marca de graduación determinada.

Este control (y, por tanto, la clase CSliderCtrl) solo está disponible para los programas que se ejecutan en Windows 95/98 y Windows NT 3.51 y posteriores.

El control deslizante se mueve en incrementos que se especifican al crearlo. Por ejemplo, si especifica que el control deslizante debe tener un rango de cinco, el control deslizante solo puede ocupar seis posiciones: una posición en el lado izquierdo del control deslizante y una posición por cada incremento del intervalo. Normalmente, cada una de estas posiciones se identifica mediante una marca de graduación.

Para crear un control deslizante, usa el constructor y la función Create miembro de CSliderCtrl. Una vez creado un control deslizante, puedes usar funciones miembro en CSliderCtrl para cambiar muchas de sus propiedades. Los cambios que puede realizar incluyen establecer las posiciones mínimas y máximas para el control deslizante, dibujar marcas de graduación, establecer un intervalo de selección y cambiar la posición del control deslizante.

Para obtener más información sobre el uso de la clase CSliderCtrl, consulte Controles y Uso de CSliderCtrl.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CSliderCtrl

Requisitos

Encabezado: afxcmn.h

CSliderCtrl::ClearSel

Borra la selección actual en un control deslizante.

void ClearSel(BOOL bRedraw = FALSE);

Parámetros

bRedraw
Volver a dibujar la marca. Si este parámetro es TRUE, el control deslizante se vuelve a dibujar después de borrar la selección; de lo contrario, el control deslizante no se vuelve a dibujar.

CSliderCtrl::ClearTics

Quita las marcas de graduación actuales de un control deslizante.

void ClearTics(BOOL bRedraw = FALSE);

Parámetros

bRedraw
Volver a dibujar la marca. Si este parámetro es TRUE, el control deslizante se vuelve a dibujar después de borrar las marcas de graduación; de lo contrario, el control deslizante no se vuelve a dibujar.

CSliderCtrl::Create

Crea un control deslizante y lo asocia a un objeto CSliderCtrl.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parámetros

dwStyle
Especifica el estilo del control deslizante. Aplica cualquier combinación de estilos de control deslizante, descritos en Windows SDK, al control.

rect
Especifica el tamaño y la posición del control deslizante. Puede ser un objeto CRect o una estructura RECT.

pParentWnd
Especifica la ventana primaria del control deslizante, normalmente CDialog. Este valor no debe ser NULL.

nID
Especifica el ID del control deslizante.

Valor devuelto

Es distinto de cero si la inicialización se realiza correctamente; de lo contrario,es 0.

Comentarios

El proceso de construcción de un elemento CSliderCtrl se divide en dos pasos. En primer lugar, llama al constructor y, luego, a Create, lo que crea el control deslizante y lo asocia al objeto CSliderCtrl.

Según los valores establecidos para dwStyle, el control deslizante puede tener una orientación vertical u horizontal. Puede tener marcas de graduación en uno de los lados, en ambos o en ninguno. También se puede usar para especificar un rango de valores consecutivos.

Para aplicar estilos de ventana extendidos al control deslizante, llama a CreateEx en lugar de Create.

CSliderCtrl::CreateEx

Esta función puede usarse para crear un control (una ventana secundaria) y asociarlo con el objeto CSliderCtrl.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parámetros

dwExStyle
El valor de este parámetro se usa para especificar el estilo extendido del control que se va a crear. Para obtener una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle de la función CreateWindowEx en Windows SDK.

dwStyle
Especifica el estilo del control deslizante. Aplica cualquier combinación de estilos de control deslizante, descritos en Windows SDK, al control.

rect
Una referencia a una estructura RECT describiendo el tamaño y la posición de la ventana a crear, en las coordenadas cliente de pParentWnd.

pParentWnd
Un puntero a la ventana que constituye el elemento primario del control.

nID
El identificador de ventana secundaria del control.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Usa la función CreateEx, en lugar de Create, para aplicar estilos extendidos de Windows. Estos se especifican en el prefacio de estilo extendido WS_EX_ de Windows.

CSliderCtrl::CSliderCtrl

Construye un objeto CSliderCtrl.

CSliderCtrl();

CSliderCtrl::GetBuddy

Recupera el identificador de una ventana del compañero de control deslizante en una ubicación determinada.

CWnd* GetBuddy(BOOL fLocation = TRUE) const;

Parámetros

fLocation
Un valor booleano que indica cuál de dos identificadores de ventana de amigo se va a recuperar. Puede ser uno de los siguientes valores:

  • TRUE Recupera el identificador al compañero a la izquierda del control deslizante. Si el control deslizante usa el estilo TBS_VERT, el mensaje recuperará el compañero encima del control deslizante.

  • FALSE Recupera el identificador al compañero a la derecha del control deslizante. Si el control deslizante usa el estilo TBS_VERT, el mensaje recuperará el compañero debajo del control deslizante.

Valor devuelto

Un puntero a un objeto CWnd que es la ventana del compañero en la ubicación especificada por fLocation, o NULL si no existe ninguna ventana de amigo en esa ubicación.

Comentarios

En esta función miembro, se implementa el comportamiento del mensaje TBM_GETBUDDY de Win32, tal y como se describe en Windows SDK. Para obtener una descripción de los estilos del control deslizante, consulta los estilos de la barra deslizante en Windows SDK.

CSliderCtrl::GetChannelRect

Recupera el tamaño y la posición del rectángulo delimitador para el canal de un control deslizante.

void GetChannelRect(LPRECT lprc) const;

Parámetros

lprc
Un puntero a un CRect objeto que contiene el tamaño y la posición del rectángulo delimitador del canal cuando la función devuelve.

Comentarios

El canal es el área en la que se mueve el control deslizante y que contiene el elemento resaltado cuando se selecciona un intervalo.

CSliderCtrl::GetLineSize

Recupera el tamaño de la línea de un control deslizante.

int GetLineSize() const;

Valor devuelto

Tamaño de una línea para el control deslizante.

Comentarios

El tamaño de línea afecta a cuánto se mueve el control deslizante para las notificaciones TB_LINEUP y TB_LINEDOWN. La configuración predeterminada para el tamaño de línea es 1.

CSliderCtrl::GetNumTics

Recupera el número de marcas de graduación en un control deslizante.

UINT GetNumTics() const;

Valor devuelto

Número de marcas de graduación en el control deslizante.

CSliderCtrl::GetPageSize

Recupera el tamaño de la página de un control deslizante.

int GetPageSize() const;

Valor devuelto

El tamaño de una página para el control deslizante.

Comentarios

El tamaño de página afecta a cuánto se mueve el control deslizante para las notificaciones TB_PAGEUP y TB_PAGEDOWN.

CSliderCtrl::GetPos

Recupera la posición actual del control deslizante en un control deslizante.

int GetPos() const;

Valor devuelto

Posición actual.

CSliderCtrl::GetRange

Recupera las posiciones máximas y mínimas del control deslizante en un control deslizante.

void GetRange(
    int& nMin,
    int& nMax) const;

Parámetros

nMin
Referencia a un entero que recibe la posición mínima.

nMax
Referencia a un entero que recibe la posición máxima.

Comentarios

Esta función copia los valores en los enteros a los que hace referencia a nMin y nMax.

CSliderCtrl::GetRangeMax

Recupera las posiciones máximas del control deslizador en un control deslizante.

int GetRangeMax() const;

Valor devuelto

La posición máxima del control.

CSliderCtrl::GetRangeMin

Recupera la posición mínima del deslizador en un control deslizante.

int GetRangeMin() const;

Valor devuelto

La posición mínima del control.

CSliderCtrl::GetSelection

Recupera las posiciones inicial y final de la selección actual en este objeto un control deslizante.

void GetSelection(
    int& nMin,
    int& nMax) const;

Parámetros

nMin
Referencia a un entero que recibe la posición inicial de la selección actual.

nMax
Referencia a un entero que recibe la posición final de la selección actual.

CSliderCtrl::GetThumbLength

Recupera la longitud del control deslizante en el control de barra de seguimiento actual.

int GetThumbLength() const;

Valor devuelto

La longitud del control deslizante, en píxeles.

Comentarios

Al usar este método, se envía el mensaje TBM_GETTHUMBLENGTH, que se describe en Windows SDK.

CSliderCtrl::GetThumbRect

Recupera el tamaño y la posición del rectángulo delimitador del deslizador (miniatura) en un control deslizante.

void GetThumbRect(LPRECT lprc) const;

Parámetros

lprc
Puntero a un objeto CRect que contiene el rectángulo delimitador del control deslizante cuando la función devuelve.

CSliderCtrl::GetTic

Recupera la posición de una marca de graduación en un control deslizante.

int GetTic(int nTic) const;

Parámetros

nTic
Índice de base cero que identifica una marca de graduación.

Valor devuelto

Posición de la marca de graduación especificada o - 1 si nTic no especifica un índice válido.

CSliderCtrl::GetTicArray

Recupera la dirección de la matriz que contiene las posiciones de las marcas de graduación de un control deslizante.

DWORD* GetTicArray() const;

Valor devuelto

Dirección de la matriz que contiene posiciones de marca de graduación para el control deslizante.

CSliderCtrl::GetTicPos

Recupera la posición física actual de una marca de graduación en un control deslizante.

int GetTicPos(int nTic) const;

Parámetros

nTic
Índice de base cero que identifica una marca de graduación.

Valor devuelto

Posición física, en coordenadas de cliente, de la marca de graduación especificada o - 1 si nTic no especifica un índice válido.

CSliderCtrl::GetToolTips

Recupera el identificador del control de información sobre herramientas asignado al control deslizante, si existe.

CToolTipCtrl* GetToolTips() const;

Valor devuelto

Puntero a un objeto CToolTipCtrl o NULL si la información sobre herramientas no está en uso. Si el control deslizante no usa el estilo TBS_TOOLTIPS, el valor devuelto es NULL.

Comentarios

En esta función miembro, se implementa el comportamiento del mensaje TBM_GETTOOLTIPS de Win32, tal y como se describe en Windows SDK. Ten en cuenta que esta función miembro devuelve un objeto CToolTipCtrl en lugar de un identificador a un control.

Para obtener una descripción de los estilos del control deslizante, consulta los estilos de la barra deslizante en Windows SDK.

CSliderCtrl::SetBuddy

Asigna una ventana como ventana de compañero para un control deslizante.

CWnd* SetBuddy(
    CWnd* pWndBuddy,
    BOOL fLocation = TRUE);

Parámetros

pWndBuddy
Un puntero a un objeto CWnd que se establecerá como compañero del control deslizante.

fLocation
Valor que especifica la ubicación en la que se va a mostrar la ventana del compañero. Este valor puede ser uno de los siguientes:

  • TRUE El amigo aparecerá a la izquierda de la barra de seguimiento si el control de la barra de seguimiento usa el TBS_HORZ estilo. Si la barra de seguimiento usa el estilo TBS_VERT, el compañero aparece encima del control de la barra de seguimiento.

  • FALSE El compañero aparecerá a la derecha de la barra de seguimiento si el control de la barra de seguimiento usa el estilo TBS_HORZ. Si la barra de seguimiento usa el estilo TBS_VERT, el compañero aparece debajo del control de barra de seguimiento.

Valor devuelto

Un puntero a un objeto CWnd que se asignó previamente al control deslizante en esa ubicación.

Comentarios

En esta función miembro, se implementa el comportamiento del mensaje TBM_SETBUDDY de Win32, tal y como se describe en Windows SDK. Ten en cuenta que esta función miembro usa punteros a objetos CWnd, en lugar de identificadores de ventana para su valor devuelto y parámetro.

Para obtener una descripción de los estilos del control deslizante, consulta los estilos de la barra deslizante en Windows SDK.

CSliderCtrl::SetLineSize

Establece el tamaño de la línea de un control deslizante.

int SetLineSize(int nSize);

Parámetros

nSize
El nuevo tamaño de línea del control deslizante.

Valor devuelto

El tamaño de línea anterior.

Comentarios

El tamaño de línea afecta a cuánto se mueve el control deslizante para las notificaciones TB_LINEUP y TB_LINEDOWN.

CSliderCtrl::SetPageSize

Establece el tamaño de la página de un control deslizante.

int SetPageSize(int nSize);

Parámetros

nSize
El nuevo tamaño de página del control deslizante.

Valor devuelto

El tamaño de página anterior.

Comentarios

El tamaño de página afecta a cuánto se mueve el control deslizante para las notificaciones TB_PAGEUP y TB_PAGEDOWN.

CSliderCtrl::SetPos

Establece la posición actual del deslizador en un control deslizante.

void SetPos(int nPos);

Parámetros

nPos
Especifica la nueva posición del control deslizante.

CSliderCtrl::SetRange

Establece el rango (posiciones máximas y mínimas) del deslizador en un control deslizante.

void SetRange(
    int nMin,
    int nMax,
    BOOL bRedraw = FALSE);

Parámetros

nMin
Posición mínima para el control deslizante.

nMax
Posición máxima para el control deslizante.

bRedraw
La marca redibujada. Si este parámetro es TRUE, el control deslizante se vuelve a dibujar después de establecer el rango; de lo contrario, el control deslizante no se vuelve a dibujar.

CSliderCtrl::SetRangeMax

Establece el intervalo máximo del control deslizante en un control deslizante.

void SetRangeMax(
    int nMax,
    BOOL bRedraw = FALSE);

Parámetros

nMax
Posición máxima para el control deslizante.

bRedraw
La marca redibujada. Si este parámetro es TRUE, el control deslizante se vuelve a dibujar después de establecer el rango; de lo contrario, el control deslizante no se vuelve a dibujar.

CSliderCtrl::SetRangeMin

Establece el intervalo mínimo para el deslizador en un control deslizante.

void SetRangeMin(
    int nMin,
    BOOL bRedraw = FALSE);

Parámetros

nMin
Posición mínima para el control deslizante.

bRedraw
La marca redibujada. Si este parámetro es TRUE, el control deslizante se vuelve a dibujar después de establecer el rango; de lo contrario, el control deslizante no se vuelve a dibujar.

CSliderCtrl::SetSelection

Establece las posiciones inicial y final de la selección actual en este objeto un control deslizante.

void SetSelection(
    int nMin,
    int nMax);

Parámetros

nMin
Posición inicial para el control deslizante.

nMax
Posición final para el control deslizante.

CSliderCtrl::SetThumbLength

Establece la longitud del control deslizante en el control de barra de seguimiento actual.

void SetThumbLength(int nLength);

Parámetros

nLength
[in] Longitud del control deslizante, en píxeles.

Comentarios

Este método requiere que el control de barra de seguimiento se establezca en estilo TBS_FIXEDLENGTH.

Al usar este método, se envía el mensaje TBM_SETTHUMBLENGTH, que se describe en Windows SDK.

Ejemplo

En el primer ejemplo de código se define la variable m_sliderCtrl, que se usa para acceder a la barra de control. En el ejemplo también se define una variable, thumbLength, que se usa para almacenar la longitud predeterminada de la miniatura del componente del control de la barra de seguimiento. Estas variables se usan en el ejemplo siguiente.

// Variable to access the slider control.
CSliderCtrl m_sliderCtrl;
// Length of the slider control's thumb.
int thumbLength;

En el siguiente ejemplo de código se establece el componente miniatura de la barra de seguimiento de control en dos veces su longitud predeterminada.

// Add extra initialization.

// Modify the size of the slider control's thumb.
// First, set the TBS_FIXEDLENGTH style.
m_sliderCtrl.ModifyStyle(0, TBS_FIXEDLENGTH);
thumbLength = m_sliderCtrl.GetThumbLength();
m_sliderCtrl.SetThumbLength(thumbLength * 2);

// End extra initialization.

CSliderCtrl::SetTic

Establece la posición de una marca de graduación en un control deslizante.

BOOL SetTic(int nTic);

Parámetros

nTic
Posición de la marca de graduación. Este parámetro debe especificar un valor positivo.

Valor devuelto

Distinto de cero si se establece la marca de graduación; de lo contrario, 0.

CSliderCtrl::SetTicFreq

Establece la frecuencia con la que se muestran las marcas de graduación en un control deslizante.

void SetTicFreq(int nFreq);

Parámetros

nFreq
Frecuencia de las marcas de graduación.

Comentarios

Por ejemplo, si la frecuencia se establece en 2, se muestra una marca de graduación para cada otro incremento en el intervalo del control deslizante. La configuración predeterminada de la frecuencia es 1 (es decir, cada incremento del intervalo está asociado a una marca de graduación).

Debe crear el control con el TBS_AUTOTICKS estilo para usar esta función. Para obtener más información, vea CSliderCtrl::Create.

CSliderCtrl::SetTipSide

Coloca un control de información sobre herramientas utilizado por un control de barra de seguimiento.

int SetTipSide(int nLocation);

Parámetros

nLocation
Valor que representa la ubicación en la que se va a mostrar el control de información sobre herramientas. Para obtener una lista de los valores posibles, consulta el mensaje TBM_SETTIPSIDEWin32, como se describe en Windows SDK.

Valor devuelto

Valor que representa la ubicación anterior del control de información sobre herramientas. El valor devuelto es igual a uno de los valores posibles para nLocation.

Comentarios

En esta función miembro, se implementa el comportamiento del mensaje TBM_SETTIPSIDE de Win32, tal y como se describe en Windows SDK. Controles deslizantes que usan la información TBS_TOOLTIPS sobre herramientas para mostrar estilo. Para obtener una descripción de los estilos del control deslizante, consulta los estilos de la barra deslizante en Windows SDK.

CSliderCtrl::SetToolTips

Asigna un control de información sobre herramientas a un control deslizante.

void SetToolTips(CToolTipCtrl* pWndTip);

Parámetros

pWndTip
Un puntero a un objeto CToolTipCtrl que contiene la información sobre herramientas que se va a usar con el control deslizante.

Comentarios

En esta función miembro, se implementa el comportamiento del mensaje TBM_SETTOOLTIPS de Win32, tal y como se describe en Windows SDK. Cuando se crea un control deslizante con el estilo TBS_TOOLTIPS, crea un control de información sobre herramientas predeterminado que aparece junto al control deslizante, mostrando la posición actual del control deslizante. Para obtener una descripción de los estilos del control deslizante, consulta los estilos de la barra deslizante en Windows SDK.

Consulte también

Ejemplo de MFCCMNCTRL2
CWnd (clase)
Gráfico de jerarquías
CProgressCtrl (clase)