datectrl.h

Clase wxDatePickerCtrl

Este control permite al usuario seleccionar una fecha.

Jerarquía:

Jerarquía de la clase wxDatePickerCtrl

A diferencia de wxCalendarCtrl, que es un control relativamente grande, wxDatePickerCtrl se implementa como una pequeña ventana que muestra la fecha actualmente seleccionada. El control puede editarse mediante el teclado, y también puede mostrar una ventana emergente para facilitar la selección de la fecha, dependiendo de los estilos utilizados y de la plataforma.

Sólo está disponible si wxUSE_DATEPICKCTRL tiene el valor 1.

Estilos

Esta clase admite los siguientes estilos:

wxDP_SPIN
Crea un control sin calendario de mes desplegable pero con flechas tipo control giratorio para cambiar los componentes individuales de la fecha. Este estilo no está soportado por la versión genérica.
wxDP_DROPDOWN
Crea un control con una parte desplegable del calendario del mes desde la que el usuario puede seleccionar una fecha. En la versión nativa OSX/Cocoa este estilo está soportado en macOS 10.15.4 y posteriores.
wxDP_DEFAULT
Crea un control con el estilo mejor soportado para la plataforma actual (actualmente wxDP_SPIN bajo Windows y OSX/Cocoa y wxDP_DROPDOWN en el resto).
wxDP_ALLOWNONE
Con este estilo, el control permite al usuario no introducir ninguna fecha válida. Sin él -por defecto- el control siempre tiene alguna fecha válida. Este estilo no está soportado en la versión nativa OSX/Cocoa.
wxDP_SHOWCENTURY
Fuerza la visualización del siglo en el formato de fecha por defecto. Sin este estilo el siglo podría mostrarse, o no, dependiendo de la representación de fecha por defecto en el sistema. Este estilo no está soportado actualmente en la versión nativa de OSX/Cocoa.

Como puede verse en los comentarios anteriores, la mayoría de los estilos de control sólo están soportados en la implementación nativa de MSW. En código portable se recomienda utilizar únicamente el estilo wxDP_DEFAULT, posiblemente combinado con wxDP_SHOWCENTURY (este es también el estilo utilizado por defecto si no se especifica ninguno).

Eventos emitidos por esta clase

Las siguientes macros manejadoras de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:

void handlerFuncName(wxDateEvent& event)

Macros para eventos emitidos por esta clase:

EVT_DATE_CHANGED(id, func)
Procesa un evento wxEVT_DATE_CHANGED, que se dispara cuando el usuario cambia la selección actual en el control.

Funciones miembro

wxDatePickerCtrl()

wxDatePickerCtrl::wxDatePickerCtrl()

Constructor por defecto.

wxDatePickerCtrl()

wxDatePickerCtrl::wxDatePickerCtrl( wxWindow * parent, wxWindowID id, const wxDateTime & dt = wxDefaultDateTime, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxDP_DEFAULT|wxDP_SHOWCENTURY, const wxValidator & validator = wxDefaultValidator, const wxString & name = "datectrl" )

Inicializa el objeto y llama a Create() con todos los parámetros.

Create()

bool wxDatePickerCtrl::Create( wxWindow * parent, wxWindowID id, const wxDateTime & dt = wxDefaultDateTime, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxDP_DEFAULT|wxDP_SHOWCENTURY, const wxValidator & validator = wxDefaultValidator, const wxString & name = "datectrl" )

Crea la ventana de control.

Este método sólo debe usarse para objetos creados usando el constructor por defecto.

Parámetros
parent
Ventana padre, no debe ser no nula.
id
El identificador del control.
dt
El valor inicial del control, si se utiliza una fecha inválida (como el valor por defecto), el control se establece en la fecha actual.
pos
Posición inicial.
size
Tamaño inicial. Si se deja en el valor por defecto, el control elige su propio tamaño óptimo utilizando una altura aproximadamente igual a la de un control de texto y una anchura lo suficientemente grande como para mostrar la cadena de fecha por completo.
style
El estilo de la ventana, ver la descripción de los estilos en la documentación de la clase.
validator
Validador que puede utilizarse para comprobaciones adicionales de datos.
name
Nombre del control.
Valor de retorno

true si el control fue creado con éxito o false si la creación falló.

GetRange()

virtual bool wxDatePickerCtrl::GetRange( wxDateTime * dt1, wxDateTime * dt2 ) const

Si el control se ha limitado previamente a un rango de fechas utilizando SetRange(), devuelve los límites inferior y superior de este rango.

Si no se establece ningún rango (o sólo se establece uno de los límites), dt1 y/o dt2 se establecen como inválidos.

Obsérvese que cuando se utiliza una implementación nativa MSW de este control, el rango inferior siempre se establece, incluso si SetRange() no se ha llamado explícitamente, ya que el control nativo sólo admite fechas posteriores al año 1601.

Parámetros
dt1
Puntero al objeto que recibe el límite inferior del rango o se invalida si no se establece. Puede ser nullptr si el proceso que llama no está interesado en el límite inferior.
dt2
Igual que arriba pero para el límite superior.
Valor de retorno

false si no hay ningún límite de rango establecido, true si hay al menos un límite establecido.

GetValue()

virtual wxDateTime wxDatePickerCtrl::GetValue() const

Devuelve la fecha introducida actualmente.

Para un control con estilo wxDP_ALLOWNONE el valor devuelto puede ser inválido si no se introduce ninguna fecha, de lo contrario siempre es válido.

SetNullText()

void wxDatePickerCtrl::SetNullText(const wxString & text)

Establece el texto a mostrar cuando no hay ningún valor válido.

Para los controles con estilo wxDP_ALLOWNONE, establece la cadena que se muestra cuando el control no tiene ningún valor válido. Actualmente esto sólo se utiliza en MSW, donde se puede utilizar para anular el valor anterior que se sigue mostrando por el control en este caso, y se ignora en otros lugares.

En particular, el texto puede estar vacío para ocultar completamente la fecha si no se especifica ninguna fecha válida.

SetRange()

virtual void wxDatePickerCtrl::SetRange( const wxDateTime & dt1, const wxDateTime & dt2 )

Establece el intervalo válido para la selección de fecha.

Si dt1 es válido, se convierte en la fecha más temprana (inclusive) aceptada por el control. Si dt2 es válido, se convierte en la fecha más tardía posible.

Hay que tener en cuenta que si el valor actual no está dentro del nuevo rango, se ajustará para que esté dentro, es decir, llamar a este método puede cambiar el valor del control, sin embargo no se generan eventos por ello.

Observaciones

Si el valor actual del control está fuera de los límites del nuevo rango establecido, el comportamiento es indefinido.

SetValue()

virtual void wxDatePickerCtrl::SetValue(const wxDateTime & dt)

Cambia el valor actual del control.

La fecha debe ser válida a menos que el control haya sido creado con el estilo wxDP_ALLOWNONE e incluido en el rango actualmente seleccionado, si lo hubiera.

La llamada a este método no produce un evento de cambio de fecha.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxControl, wxWindow, wxEvtHandler y wxObject.