Compartir a través de


Clase CSpinButtonCtrl

Proporciona la funcionalidad del control de botón de número común de Windows.

Sintaxis

class CSpinButtonCtrl : public CWnd

Miembros

Constructores públicos

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

Métodos públicos

Nombre Descripción
CSpinButtonCtrl::Create Crea un control de botón de número y lo asocia a un objeto CSpinButtonCtrl.
CSpinButtonCtrl::CreateEx Crea un control de botón de número con los estilos extendidos de Windows especificados y lo asocia a un objeto CSpinButtonCtrl.
CSpinButtonCtrl::GetAccel Recupera información de aceleración para un control de botón de número.
CSpinButtonCtrl::GetBase Recupera la base actual para un control de botón de número.
CSpinButtonCtrl::GetBuddy Recupera un puntero a la ventana relacionada actual.
CSpinButtonCtrl::GetPos Recupera la posición actual de un control de botón de número.
CSpinButtonCtrl::GetRange Recupera los límites superior e inferior (intervalo) de un control de botón de número.
CSpinButtonCtrl::SetAccel Establece la aceleración de un control de botón de número.
CSpinButtonCtrl::SetBase Establece la base de un control de botón de número.
CSpinButtonCtrl::SetBuddy Establece la ventana relacionada para un control de botón de número.
CSpinButtonCtrl::SetPos Establece la posición actual del control.
CSpinButtonCtrl::SetRange Establece los límites superior e inferior (intervalo) de un control de botón de número.

Comentarios

Un "control de botón de número" (también conocido como control de flechas) es un par de botones de flecha en los que el usuario puede hacer clic para incrementar o disminuir un valor, como una posición de desplazamiento o un número que se muestra en un control complementario. El valor asociado a un control de botón de número se denomina su posición actual. Un control de botón de número se usa con más frecuencia con un control complementario, denominado "ventana relacionada".

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

Para el usuario, un control de botón de número y su ventana relacionada suelen parecer un control único. Puede especificar que un control de botón de número se coloque automáticamente junto a su ventana relacionada y que establezca automáticamente el título de la ventana relacionada en su posición actual. Puede usar un control de botón de número con un control de edición para solicitar al usuario una entrada numérica.

Al hacer clic en la flecha arriba, se mueve la posición actual hacia el máximo y, al hacer clic en la flecha hacia abajo, se mueve la posición actual hacia el mínimo. De manera predeterminada, el mínimo es 100 y el máximo es 0. Cada vez que la configuración mínima sea mayor que la configuración máxima (por ejemplo, cuando se usa la configuración predeterminada), al hacer clic en la flecha arriba se reduce el valor de posición y al hacer clic en la flecha hacia abajo se aumenta.

Un control de botón de número sin una ventana relacionada funciona como una especie de barra de desplazamiento simplificada. Por ejemplo, en un control de pestaña a veces se muestra un control de botón de número para permitir al usuario desplazarse por pestañas adicionales a la vista.

Para obtener más información sobre el uso de CSpinButtonCtrl, vea Controles y Uso de CSpinButtonCtrl.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CSpinButtonCtrl

Requisitos

Encabezado: afxcmn.h

CSpinButtonCtrl::Create

Crea un control de botón de número y lo adjunta a un objeto CSpinButtonCtrl.

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

Parámetros

dwStyle
Especifica el estilo del control de botón de número. Aplique al control cualquier combinación de estilos del control de botón de número. Estos estilos se describen en Estilos de control de flechas en Windows SDK.

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

pParentWnd
Puntero a la ventana primaria del control de botón de número, normalmente un elemento CDialog. No debe ser NULL.

Nid
Especifica el id. del control de botón de número.

Valor devuelto

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

Comentarios

Construye un objeto CSpinButtonCtrl en dos pasos. En primer lugar, llame al constructor y, después, llame a Create, que crea el control de botón de número y lo adjunta al objeto CSpinButtonCtrl.

Para crear un control de botón de número con estilos de ventana extendidos, llame a CSpinButtonCtrl::CreateEx en lugar de a Create.

CSpinButtonCtrl::CreateEx

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

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 ver una lista de los estilos extendidos de Windows, consulte el parámetro dwExStyle de CreateWindowEx en Windows SDK.

dwStyle
Especifica el estilo del control de botón de número. Aplique al control cualquier combinación de estilos del control de botón de número. Estos estilos se describen en Estilos de control de flechas en Windows SDK.

rect
Referencia a una estructura RECT que describe el tamaño y la posición de la ventana que se va a crear, en coordenadas de 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

Use CreateEx en lugar de Create para aplicar estilos extendidos de Windows, que especifica el prefacio de estilo extendido de Windows WS_EX_.

CSpinButtonCtrl::CSpinButtonCtrl

Construye un objeto CSpinButtonCtrl.

CSpinButtonCtrl();

CSpinButtonCtrl::GetAccel

Recupera información de aceleración para un control de botón de número.

UINT GetAccel(
    int nAccel,
    UDACCEL* pAccel) const;

Parámetros

nAccel
Número de elementos de la matriz que especifica pAccel.

pAccel
Puntero a una matriz de estructuras UDACCEL que reciben información de aceleración.

Valor devuelto

Número de estructuras del acelerador recuperadas.

CSpinButtonCtrl::GetBase

Recupera la base actual para un control de botón de número.

UINT GetBase() const;

Valor devuelto

Valor base actual.

CSpinButtonCtrl::GetBuddy

Recupera un puntero a la ventana relacionada actual.

CWnd* GetBuddy() const;

Valor devuelto

Puntero a la ventana relacionada actual.

CSpinButtonCtrl::GetPos

Recupera la posición actual de un control de botón de número.

int GetPos() const;  int GetPos32(LPBOOL lpbError = NULL) const;

Parámetros

lpbError
Puntero a un valor booleano que se establece en cero si el valor se recupera correctamente o en un valor distinto de cero si se produce un error. Si este parámetro se establece en NULL, no se notifican errores.

Valor devuelto

La primera versión devuelve la posición actual de 16 bits en la palabra de orden inferior. La palabra de orden superior es distinta de cero si se ha producido un error.

La segunda versión devuelve la posición de 32 bits.

Comentarios

Cuando procesa el valor devuelto, el control actualiza su posición actual en función del título de la ventana relacionada. El control devuelve un error si no hay ninguna ventana relacionada o si el título especifica un valor no válido o fuera del intervalo.

CSpinButtonCtrl::GetRange

Recupera los límites superior e inferior (intervalo) de un control de botón de número.

DWORD GetRange() const;

void GetRange(
    int& lower,
    int& upper) const;

void GetRange32(
    int& lower,
    int &upper) const;

Parámetros

lower
Referencia a un entero que recibe el límite inferior del control.

upper
Referencia a un entero que recibe el límite superior del control.

Valor devuelto

La primera versión devuelve un valor de 32 bits que contiene los límites superior e inferior. La palabra de orden inferior es el límite superior del control y la palabra de orden superior es el límite inferior.

Comentarios

La función miembro GetRange32 recupera el intervalo del control de botón de número como un entero de 32 bits.

CSpinButtonCtrl::SetAccel

Establece la aceleración de un control de botón de número.

BOOL SetAccel(
    int nAccel,
    UDACCEL* pAccel);

Parámetros

nAccel
Número de estructuras UDACCEL que especifica pAccel.

pAccel
Puntero a una matriz de estructuras UDACCEL, que contienen información de aceleración. Los elementos deben ordenarse en orden ascendente en función del miembro nSec.

Valor devuelto

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

CSpinButtonCtrl::SetBase

Establece la base de un control de botón de número.

int SetBase(int nBase);

Parámetros

nBase
Nuevo valor base para el control. Puede ser 10 para números decimales o 16 para números hexadecimales.

Valor devuelto

Es el valor base anterior si se realiza correctamente o cero si se especifica una base no válida.

Comentarios

El valor base determina si en la ventana relacionada se muestran números en dígitos decimales o hexadecimales. Los números hexadecimales siempre son sin signo; mientras que los decimales tienen signo.

CSpinButtonCtrl::SetBuddy

Establece la ventana relacionada para un control de botón de número.

CWnd* SetBuddy(CWnd* pWndBuddy);

Parámetros

pWndBuddy
Puntero a la nueva ventana relacionada.

Valor devuelto

Puntero a la ventana anterior de prueba.

Comentarios

Un control de número casi siempre está asociado a otra ventana, como un control de edición, que muestra algo de contenido. Esta otra ventana se denomina "relacionada" del control de número.

CSpinButtonCtrl::SetPos

Establece la posición actual de un control de botón de número.

int SetPos(int nPos);
int SetPos32(int nPos);

Parámetros

nPos
Nueva posición para el control. Este valor debe estar en el intervalo que especifican los límites superior e inferior del control.

Valor devuelto

Posición anterior (precisión de 16 bits para SetPos, precisión de 32 bits para SetPos32).

Comentarios

SetPos32 establece la posición de 32 bits.

CSpinButtonCtrl::SetRange

Establece los límites superior e inferior (intervalo) de un control de botón de número.

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

Parámetros

nLower y nUpper
Límites superior e inferior del control. En el caso de SetRange, los límites no pueden ser mayores que UD_MAXVAL o menores que UD_MINVAL; además, la diferencia entre los dos límites no puede superar UD_MAXVAL. SetRange32 no hace ninguna restricción en los límites; puede usar cualquier entero.

Comentarios

La función miembro SetRange32 establece el intervalo de 32 bits para el control de botón de número.

Nota:

El intervalo predeterminado para el botón de número tiene el máximo establecido en cero (0) y el mínimo en 100. Dado que el valor máximo es menor que el valor mínimo, al hacer clic en la flecha arriba se disminuirá la posición y al hacerlo en la flecha abajo se aumentará. Use CSpinButtonCtrl::SetRange para ajustar estos valores.

Consulte también

MFC Sample CMNCTRL2
CWnd (clase)
Gráfico de jerarquías
CSliderCtrl (clase)