Como sacar mensajes de aplicacion

29/04/2004 - 12:05 por guillermo pacheco | Informe spam
Estoy utilizando la funcion
GetDlgItem(IDC_EDIT))->SetWindowText(Mi_mensaje)
para enviar mensajes de un subproceso a un recuadro de texto de la
aplicacion principal, pero tengo varios problemas:

El texto no aparece hasta que la funcion que lo llama termina. Y si quiero
poner varios mensages tengo que ir almacenandolos todos en una variable para
finalmente visualizarlos todos a la vez. Pero ademas, no se como poner
varias lineas seguidas una detras de otra:
mensaje1
mensaje2
mensaje3
porque parece que la ventana de texto no acepta el caracter '' y las
lineas que intento escribir me aparecen asi
mensaje1|mensaje2|mensaje3


Alguna forma diferente de escribir mensajes de aplicacion en la ventana
principal??

Gracias

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
29/04/2004 - 15:13 | Informe spam
En el editor de formularios, estabece la opción multiline del control edit a
true.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#2 guillermo pacheco
29/04/2004 - 21:22 | Informe spam
Ya lo hice pero no me funciona...
No se como haecr para que aparezcan varias lineas en el editor de texto...

el codigo que utilizo es el siguiente:

mi_funcion()
{
((CEdit *) GetDlgItem(IDC_EDIT2))->SetWindowText("mensaje de inicio de
mi aplicacion");

var_res = (int)ShellExecute(hwnd,"open"
,"lwg.exe",comando,camino_aplicacion, SW_SHOW ); // aplicacion a ejecutar en
una linea de comandos

((CEdit *) GetDlgItem(IDC_EDIT2))->SetWindowText("mensaje de
finalizacion de mi aplicacion");
}
Cuando ejecuto esta funcion solo me aparece el segundo mensaje que envio al
editor de texto(mensaje de finalizacion). El primer mensaje no aparece..


Alguna ayuda???



Guillermo





"Rodrigo Corral [MVP]" escribió en el mensaje
news:eD1N%
En el editor de formularios, estabece la opción multiline del control edit


a
true.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net


Respuesta Responder a este mensaje
#3 Willser F. González C.
29/04/2004 - 23:27 | Informe spam
1. Puede probar también colocando un AfxMessageBox("Pulse Enter"); entre los
dos SetWindowText(...) que usted tiene; entonces notará, antes de salir del
mensaje, que el primer llamado sí actualiza el contenido. Si eso ocurre,
entonces el comportamiento es normal.


2. Ahora, si ese no es el problema, entonces, puede ocurrir que cuando se
está actualizando el contenido de un EDIT dentro de un bucle, no se alcancen
a visualizar las cambios de texto del EDIT. Para probar, sólo cambie el
destino del texto a la ventana padre de la aplicación o de la caja de
diálogo o del formulario donde está visualizando el mensaje:

algo así como:

SetWindowText("mensaje de inicio de mi aplicacion");

en lugar de:

((CEdit *) GetDlgItem(IDC_EDIT2))->SetWindowText("mensaje de inicio de
mi aplicacion");

Entonces notará que el título de la ventana sí se actualiza.
Respuesta Responder a este mensaje
#4 Sergio
30/04/2004 - 10:25 | Informe spam
guillermo pacheco escribió:
Ya lo hice pero no me funciona...
No se como haecr para que aparezcan varias lineas en el editor de texto...

el codigo que utilizo es el siguiente:

mi_funcion()
{
((CEdit *) GetDlgItem(IDC_EDIT2))->SetWindowText("mensaje de inicio de
mi aplicacion");

var_res = (int)ShellExecute(hwnd,"open"
,"lwg.exe",comando,camino_aplicacion, SW_SHOW ); // aplicacion a ejecutar en
una linea de comandos

((CEdit *) GetDlgItem(IDC_EDIT2))->SetWindowText("mensaje de
finalizacion de mi aplicacion");
}
Cuando ejecuto esta funcion solo me aparece el segundo mensaje que envio al
editor de texto(mensaje de finalizacion). El primer mensaje no aparece..


Alguna ayuda???



Guillermo





Primero tienes que leer lo que habia en el CEdit, y añadirle el nuevo texto:
CString cstrTextoAnterior;

((CEdit *) GetDlgItem(IDC_EDIT2))->GetWindowText(cstrTextoAnterior);
cstrTextoAnterior += "Mensaje de finalizacion de mi aplicacion");
((CEdit *) GetDlgItem(IDC_EDIT2))->SetWindowText(cstrTextoAnterior);

Con esto deberias poder añadir lineas.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida