msgout.h

Clase wxMessageOutput

Clase simple que permite escribir cadenas en varios canales de salida.

Jerarquía:

Jerarquía de la clase wxMessageOutput

wxMessageOutput es una clase de bajo nivel y no proporciona ninguna de las comodidades de wxLog. Simplemente permite escribir un mensaje en algún canal de salida: normalmente archivo o error estándar, pero posiblemente también un cuadro de mensaje. Aunque el uso de wxLog y funciones relacionadas es preferible en muchos casos, a veces esta simple interfaz puede ser más conveniente.

Esta clase es una clase base abstracta para varias clases derivadas concretas:

También proporciona acceso al objeto global de salida de mensajes que es creado por wxAppTraits::CreateMessageOutput() que crea un objeto de clase wxMessageOutputStderr en las aplicaciones de consola y wxMessageOutputBest en las de GUI pero puede ser sobrescrito en la clase traits definida por el usuario.

Ejemplo de uso de esta clase:

wxMessageOutputDebug().Printf("name=%s, preparing to greet...", name);
wxMessageOutput::Get()->Printf("Hello, %s!", name);

Funciones miembro

Get()

static wxMessageOutput* wxMessageOutput::Get()

Devuelve el objeto global de salida de mensajes.

Este objeto nunca es nullptr mientras el programa se está ejecutando, pero puede ser nullptr durante la inicialización (antes de instanciar el objeto wxApp) o el apagado (después de la destrucción de wxApp).

Output()

virtual void wxMessageOutput::Output(const wxString & str)

Método llamado por Printf() para mostrar realmente el texto.

Este método es sobreescrito en varias clases derivadas y es también el que se debería sobreescribir si se implementa un objeto de salida de mensajes personalizado.

También puede ser llamado directamente en lugar de Printf(). Esto es especialmente útil cuando se emite una cadena definida por el usuario, ya que se puede llamar simplemente con esta cadena en lugar de utilizar:

msgout.Printf("%s", str);

(Hay que tener en cuenta que pasar una cadena definida por el usuario a Printf() directamente es, por supuesto, un riesgo de seguridad).

Printf()

void wxMessageOutput::Printf( const wxString & format, ... )

Da salida a un mensaje.

Esta función utiliza las mismas convenciones que printf() estándar.

Set()

static wxMessageOutput* wxMessageOutput::Set(wxMessageOutput * msgout)

Establece el objeto global de salida de mensajes.

Utilizar esta función puede ser una alternativa más sencilla para cambiar el objeto de salida de mensajes utilizado para un programa que sobrescribir wxAppTraits::CreateMessageOutput().

Hay que recordar borrar el puntero devuelto o restaurarlo más tarde con otra llamada a Set().