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
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)