Clase wxMessageDialog
Esta clase representa un diálogo que muestra un mensaje de una o varias líneas, con una selección de botones Aceptar, Sí, No y Cancelar.
Jerarquía:

Nota sobre los iconos: aunque este diálogo define una serie de estilos relacionados con los iconos, el icono real puede o no aparecer dependiendo de las convenciones de interfaz de usuario de la plataforma actual. Por ejemplo, el tema GTK por defecto no utiliza ningún icono en los diálogos de mensajes, mientras que macOS sí utiliza un icono, pero utiliza el icono de la aplicación para los diálogos informativos.
Estilos
Esta clase soporta los siguientes estilos:
- wxOK
- Pone un botón Ok en el cuadro de mensaje. Puede combinarse con wxCANCEL.
- wxCANCEL
- Pone un botón Cancelar en el cuadro de mensaje. Debe combinarse con wxOK o wxYES_NO.
- wxYES_NO
- Pone botones de Sí y No en el cuadro de mensaje. Se recomienda utilizar siempre wxCANCEL con este estilo ya que de lo contrario el cuadro de mensaje no tendrá botón de cierre bajo wxMSW y el usuario se verá obligado a responder.
- wxHELP
- Pone un botón de Ayuda en el cuadro de mensaje. Este botón puede tener una apariencia especial o estar especialmente posicionado si su etiqueta no se cambia de la que viene por defecto. Hay que tener en cuenta que el uso de este botón no está soportado cuando se muestra un cuadro de mensaje desde un hilo no principal en wxOSX/Cocoa. Disponible desde wxWidgets 2.9.3.
- wxNO_DEFAULT
- Hace que el botón "No" sea el predeterminado, sólo se puede utilizar con wxYES_NO.
- wxCANCEL_DEFAULT
- Hace que el botón "Cancelar" sea el predeterminado, sólo se puede utilizar con wxCANCEL. Este estilo no está soportado actualmente (e ignorado) en wxOSX.
- wxYES_DEFAULT
- Hace que el botón "Sí" sea el predeterminado, este es el comportamiento por defecto y esta bandera existe únicamente por simetría con wxNO_DEFAULT.
- wxOK_DEFAULT
- Hace que el botón "OK" sea el predeterminado, este es el comportamiento por defecto y esta bandera existe únicamente por simetría con wxCANCEL_DEFAULT.
- wxICON_NONE
- No muestra ningún icono en el diálogo si es posible (podría seguir mostrándose un icono si la plataforma actual obliga a su uso). Este estilo puede utilizarse para evitar que el diálogo utilice el icono por defecto basado en la presencia de wxYES_NO como se explica en la documentación de wxICON_QUESTION y wxICON_INFORMATION más adelante.
- wxICON_ERROR
- Muestra un icono de error en el diálogo.
- wxICON_WARNING
- Muestra un icono de advertencia en el diálogo. Este estilo se debe utilizar para advertencias informativas o, en combinación con wxYES_NO o wxCANCEL, para preguntas que tienen consecuencias potencialmente graves (el icono de precaución se utiliza en macOS en este caso).
- wxICON_QUESTION
- Muestra un símbolo de interrogación. Este icono se utiliza automáticamente con wxYES_NO, por lo que normalmente no es necesario especificarlo explícitamente. Este estilo no está soportado para diálogos de mensajes bajo wxMSW porque las directrices de Microsoft indican que no se debe utilizar ningún icono para confirmaciones rutinarias. Si se especifica, no se mostrará ningún icono.
- wxICON_INFORMATION
- Muestra un símbolo de información. Este icono se utiliza por defecto si no se indica wxYES_NO, por lo que no suele ser necesario especificarlo explícitamente.
- wxICON_EXCLAMATION
- Alias de wxICON_WARNING.
- wxICON_HAND
- Alias de wxICON_ERROR.
- wxICON_AUTH_NEEDED
- Muestra un símbolo de autenticación necesaria. Este estilo sólo está soportado para diálogos de mensajes bajo wxMSW. En otros casos se utilizará la lógica de selección de iconos por defecto. Hay que tener en cuenta que puede combinarse con otros estilos para proporcionar una alternativa. Por ejemplo, usando wxICON_AUTH_NEEDED | wxICON_QUESTION se mostrará un símbolo de escudo en Windows Vista o superior y un símbolo de pregunta en otras plataformas. Disponible desde wxWidgets 2.9.5.
- wxSTAY_ON_TOP
- Hace que el cuadro de mensaje permanezca encima de todas las demás ventanas y no sólo de su padre (actualmente implementado sólo en MSW y GTK).
- wxCENTRE
- Centra el cuadro de mensaje en su padre o en la pantalla si no se especifica el padre. Establecer este estilo en MSW no supone ninguna diferencia, ya que el cuadro de diálogo siempre se centra en la ventana padre.
Funciones miembro
wxMessageDialog()
wxMessageDialog::wxMessageDialog( wxWindow * parent, const wxString & message, const wxString & caption = wxMessageBoxCaptionStr, long style = wxOK|wxCENTRE, const wxPoint & pos = wxDefaultPosition )
Constructor que especifica las propiedades del cuadro de mensaje.
Utilizar ShowModal() para mostrar el cuadro de diálogo.
style puede ser una lista de bits de los identificadores descritos anteriormente.
Observese que no todos los estilos son compatibles: sólo puede especificarse uno de wxOK y wxYES_NO (y debe especificarse uno de ellos) y sólo puede utilizarse como máximo un estilo de botón por defecto y sólo es válido si el botón correspondiente se muestra en el cuadro de mensaje.
Parámetros
- parent
- Ventana padre.
- message
- Mensaje a mostrar en el cuadro de diálogo.
- caption
- Título del cuadro de diálogo.
- style
- Combinación de las marcas de estilo descritas anteriormente.
- pos
- Posición del diálogo (ignorada en MSW).
GetCancelLabel()
wxString wxMessageDialog::GetCancelLabel() const
GetCaption()
wxString wxMessageDialog::GetCaption() const
GetEffectiveIcon()
long wxMessageDialog::GetEffectiveIcon() const
GetExtendedMessage()
wxString wxMessageDialog::GetExtendedMessage() const
GetHelpLabel()
wxString wxMessageDialog::GetHelpLabel() const
GetMessage()
wxString wxMessageDialog::GetMessage() const
GetMessageDialogStyle()
long wxMessageDialog::GetMessageDialogStyle()const
GetNoLabel()
wxString wxMessageDialog::GetNoLabel() const
GetOKLabel()
wxString wxMessageDialog::GetOKLabel() const
GetYesLabel()
wxString wxMessageDialog::GetYesLabel() const
HasCustomLabels()
bool wxMessageDialog::HasCustomLabels() const
SetExtendedMessage()
virtual void wxMessageDialog::SetExtendedMessage(const wxString & extendedMessage)
Establece el mensaje extendido para el diálogo: este mensaje es normalmente una extensión del mensaje corto especificado en el constructor o establecido con SetMessage().
Si se establece, el mensaje principal aparece resaltado - si se soporta - y este mensaje aparece debajo de él en fuente normal. En las plataformas que no soportan mensajes extendidos, simplemente se añade al mensaje normal con una línea vacía separándolos.
SetHelpLabel()
virtual bool wxMessageDialog::SetHelpLabel(const ButtonLabel & help)
Establece la etiqueta para el botón Ayuda.
Consultar las observaciones en la documentación de SetYesNoLabels().
Hay que tener en cuenta que cambiar la etiqueta del botón de ayuda restablece su estado especial (si lo tiene, esto depende de la plataforma) y será tratado como cualquier otro botón en este caso.
SetMessage()
virtual void wxMessageDialog::SetMessage(const wxString & message)
Establece el mensaje mostrado por el diálogo.
SetOKCancelLabels()
virtual bool wxMessageDialog::SetOKCancelLabels( const ButtonLabel & ok, const ButtonLabel & cancel )
Anula las etiquetas por defecto de los botones Aceptar y Cancelar.
Consultar las observaciones de la documentación de SetYesNoLabels().
SetOKLabel()
virtual bool wxMessageDialog::SetOKLabel(const ButtonLabel & ok)
Anula la etiqueta por defecto del botón OK.
Consultar las observaciones de la documentación de SetYesNoLabels().
SetYesNoCancelLabels()
virtual bool wxMessageDialog::SetYesNoCancelLabels( const ButtonLabel & yes, const ButtonLabel & no, const ButtonLabel & cancel )
Anula las etiquetas por defecto de los botones Sí, No y Cancelar.
Consultar las observaciones de la documentación de SetYesNoLabels().
SetYesNoLabels()
virtual bool wxMessageDialog::SetYesNoLabels( const ButtonLabel & yes, const ButtonLabel & no )
Anula las etiquetas por defecto de los botones Sí y No.
Los argumentos de esta función pueden ser cadenas o uno de los identificadores estándar, como wxID_APPLY o wxID_OPEN. Observese que aunque la etiqueta se especifique como un identificador, el valor de retorno del método ShowModal() del diálogo sigue siendo uno de los valores wxID_OK, wxID_CANCEL, wxID_YES o wxID_NO, es decir, este identificador sólo cambia el aspecto de la etiqueta pero no el código de retorno generado por el botón. Es posible mezclar identificadores de acciones y etiquetas de cadena en la misma llamada a función, por ejemplo:
wxMessageDialog dlg(...); dlg.SetYesNoLabels(wxID_SAVE, _("&Don't save"));
También hay que tener en cuenta que esta función no está disponible actualmente en todas las plataformas (aunque a partir de wxWidgets 2.9.0 está implementada en todos los ports principales), por lo que puede devolver false para indicar que las etiquetas no se pudieron cambiar. Si devuelve true, las etiquetas se establecieron con éxito.
Normalmente, si la función se utilizó con éxito, puede ser necesario cambiar el mensaje del diálogo principal, por ejemplo:
wxMessageDialog dlg(...); if ( dlg.SetYesNoLabels(_("&Quit"), _("&Don't quit")) ) dlg.SetMessage(_("What do you want to do?")); else // buttons have standard "Yes"/"No" values, so rephrase the question dlg.SetMessage(_("Do you really want to quit?"));
ShowModal()
virtual int wxMessageDialog::ShowModal()
Muestra el diálogo, devolviendo uno de wxID_OK, wxID_CANCEL, wxID_YES, wxID_NO o wxID_HELP.
Nótese que este método devuelve el identificador del botón sobre el que se ha pulsado, a diferencia de la función wxMessageBox().
Reimplementado de wxDialog.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxDialog, wxTopLevelWindow, wxNonOwnedWindow, wxWindow, wxEvtHandler y wxObject.