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


Hilos y CEdit

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

Moderador: latindeveloper

Hilos y CEdit

Notapor pequeniosaltamontes el Mar Mar 27, 2007 7:34 am

Estoy trabajando en Embedded Visual C ++, programando para un Workabout Pro de Psion que funciona con Windows Ce .Net 4.20.
Tengo un programa que lee desde el puerto serie mediante un hilo que realiza una lectura continua. El problema es cuando recibe los datos del puerto serie y hay que mostrarlos.
Intenté hacerlo desde dentro del hilo mediante SetWindowText y mediante el envio al CEdit de un mensaje WM_SETTEXT, pero no consigo que se muestren los datos en el CEdit.
Probe invalidando la ventana para que se volviera a dibujar, pero nada.
Lo extraño es que el programa funciona bien cuando hago un AfxMessageBox mostrando cualquier cosa en cualquier parte de la rutina de lectura. Tambien funciona en modo debug, deteniendo el programa en algun lugar. Pero cuando lo ejecuto normalmente no se muestra nada en el CEdit.
Alguien me podria dar una pista sobre que es lo que puedo hacer para corregir esto???
pequeniosaltamontes
Novato
Novato
 
Mensajes: 1
Registrado: Mar Mar 27, 2007 7:32 am

Re: Hilos y CEdit

Notapor latindeveloper el Mar Mar 27, 2007 4:40 pm

Seguramente el codigo que asigna el valor al tu CEdit esta dentro de un bucle algo asi:

Código: Seleccionar todo
while(entrada.valida)
{
        cedit.SetWindowText(entrada.texto);
}


Lo que pasa con ese codigo es que mientras no salga del bucle no podras visualizar nada (incluso otros controles del dialogo). El hecho de asignar un texto a un control produce un mensaje y estará en la cola de mensajes o simplemente será desechado si no puede actualizarse correctamente. Es por eso que cuando haces MessageBox se muestra el valor del control CEdit.

La solucion es que escribas un segmento que deje continuar al resto de tu aplicacion mientras estas en el bucle.

Código: Seleccionar todo
while(entrada.valida)
{
        cedit.SetWindowText(entrada.texto);
        MSG msg;
        if(::GetMessage(&msg,0,0,0))
        {
            ::TranslateMessage(&msg);
            ::DispatchMessage(&msg);
        }
}
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru

Re: Hilos y CEdit

Notapor stanly el Jue Abr 26, 2007 11:21 am

necesito informacion de creacion de un programa de juegos de carros pero que sea hecho con hilos no se como empesar a hacerlo necesito informacion gracias
Att. Stiven Stanly
negrosojos_7@hotmail.com
stanly
Novato
Novato
 
Mensajes: 1
Registrado: Jue Abr 26, 2007 11:07 am

Re: Hilos y CEdit

Notapor latindeveloper el Vie Abr 27, 2007 8:54 pm

Hola stanly,

por favor lee las reglas del foro.

http://www.latindevelopers.com/forum/vi ... .1521.html
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: Google Adsense [Bot] y 0 invitados