Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


cambiao de "static text"

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

cambiao de "static text"

Notapor rbpkirow el Mié Abr 20, 2005 12:25 pm

Hola.
Alguien me puede decir como puedo cambiar el texto de un cuadro de "static box" de un cuadro de dialogo?
Gracias
rbpkirow
Usuario Activo
Usuario Activo
 
Mensajes: 72
Registrado: Jue Abr 07, 2005 2:52 am
Ubicación: España

Re: cambiao de "static text"

Notapor latindeveloper el Mié Abr 20, 2005 1:59 pm

Cada elemento de un dialogo tiene un ID.. en este caso seguramente tu static es de tipo IDC_STATIC# entonces para cambiar el texto en tiemop de ejecusión simplemente haces:

GetDlgItem(IDC_STATIC1)->SetWindowText("Texto nuevo");
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Funciona

Notapor rbpkirow el Jue Abr 21, 2005 9:09 am

Gracias, lo he probado y ya va correctamente.
rbpkirow
Usuario Activo
Usuario Activo
 
Mensajes: 72
Registrado: Jue Abr 07, 2005 2:52 am
Ubicación: España

problema con dialogo domodal y static text

Notapor rbpkirow el Vie May 06, 2005 3:20 am

Hola, he probado lo que me dijiste y funciona bien siempre que el cuadro sea modeless, pero si creo un dialogo con Domodal(), la aplicacion falla cuando pongo la linea
variable.SetWindowText(&cadena);

me podrias decir alguna forma de cambiar el texto en el cuadro?
GRACIAS
rbpkirow
Usuario Activo
Usuario Activo
 
Mensajes: 72
Registrado: Jue Abr 07, 2005 2:52 am
Ubicación: España

Re: problema con dialogo domodal y static text

Notapor latindeveloper el Vie May 06, 2005 8:49 am

No dijiste exactamente el error que salta cuando compilas.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

domodal y static text

Notapor rbpkirow el Vie May 06, 2005 1:13 pm

El fallo no me da al compilar, el programa ejecuta bien, `pero cuando llamo a la funcion que tiene la instruccion setwindowtext, y despues domodal(), me salta una excepcion en la primera.
rbpkirow
Usuario Activo
Usuario Activo
 
Mensajes: 72
Registrado: Jue Abr 07, 2005 2:52 am
Ubicación: España

Re: domodal y static text

Notapor latindeveloper el Vie May 06, 2005 2:45 pm

Evidentemente.... :shock: :!:

Estas tratando de modificar el texto de un cuadro de texto que no existe todavia... tampoco el dialog se ha inicializado ni mostrado.

Seguramente quieres hacer esto:

Código: Seleccionar todo
CMiDialogo dlg(this);

dlg.GetDlgItem(IDC_STATIC1)->SetWindowText("Texto nuevo"); // Horror!!

if(dlg.DoModal() == IDOK)
{
   // Todo bien
}


La funcion DoModal() inicializa y muestra el dialogo, realizar cualquier operacion con los controles antes de eso puede ser dañino para la salud.

La solucion es lo siguiente:

1. Agregar una variable CString a la clase CMiDialogo, por ejemplo m_sTexto.

2. Poner al final del evento OnInitdialog (crearlo con el ClassWizard si no existe)

GetDlgItem(IDC_STATIC1)->SetWindowText(m_sTexto);

3. Luego podras hacer esto:

Código: Seleccionar todo
CMiDialogo dlg(this);

dlg.m_sTexto = "Texto nuevo"; 

if(dlg.DoModal() == IDOK)
{

}


Creo que con eso bastará.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado