Cont. Actualizar ventana desde otro hilo

17/06/2004 - 10:27 por sandra_soria81 | Informe spam
Bueno, sigo a vueltas con lo de actualizar una ventana desde otro hilo; En
este foro, Rodrigo me indico que tenia que pasarle al hilo, el handle de
la ventana que quiero actualizar; Pero aun tengo problemas;


La ventana que quiero actualizar esta en una clase llamada
CDescargarArchivo, he de saber el hanlde de dicha ventana, y lo obtengo de
esta manera, con FindWindow, e indicando el nombre de la ventana, aunque
no se si lo de NULL es correcto;

CWnd* pExplo = CWnd::FindWindow("DescargarArchivo", NULL);

Lo que me da problemas es a la hora de pasarle el handle al hilo;

UINT HiloDescarga (LPVOID pNulo); Esta era la funcion del hilo, si hay que
pasarle el handle, tendra que tomar como parametro
UINT HiloDescarga (CWnd* pExplo), pero me da error

Tambien cuando creo el hilo con:
AfxBeginThread(HiloDescarga(pExplo,this); me produce error;

Supongo que hare muchas cosas mal, pero es que mis conocimientos con el
Visual son muy limitados, y me esta costando mucho ir avanzando;
Supongo que luego utilizando pExplo, podre actualizar dichas ventanas con
SendMessage; Muchas gracias de nuevo;
 

Leer las respuestas

#1 Sergio
17/06/2004 - 10:48 | Informe spam
Sandra escribió:
Bueno, sigo a vueltas con lo de actualizar una ventana desde otro hilo; En
este foro, Rodrigo me indico que tenia que pasarle al hilo, el handle de
la ventana que quiero actualizar; Pero aun tengo problemas;


La ventana que quiero actualizar esta en una clase llamada
CDescargarArchivo, he de saber el hanlde de dicha ventana, y lo obtengo de
esta manera, con FindWindow, e indicando el nombre de la ventana, aunque
no se si lo de NULL es correcto;

CWnd* pExplo = CWnd::FindWindow("DescargarArchivo", NULL);

Lo que me da problemas es a la hora de pasarle el handle al hilo;

UINT HiloDescarga (LPVOID pNulo); Esta era la funcion del hilo, si hay que
pasarle el handle, tendra que tomar como parametro
UINT HiloDescarga (CWnd* pExplo), pero me da error

Tambien cuando creo el hilo con:
AfxBeginThread(HiloDescarga(pExplo,this); me produce error;

Supongo que hare muchas cosas mal, pero es que mis conocimientos con el
Visual son muy limitados, y me esta costando mucho ir avanzando;
Supongo que luego utilizando pExplo, podre actualizar dichas ventanas con
SendMessage; Muchas gracias de nuevo;







puedes hacer lo siguiente

UINT HiloDescarga(LPVOID pVentana)
{
CDlg *dlg = (CDlg*) pVentana); //Así ya tienes el puntero a la ventana
..
}

CWnd* pExplo = CWnd::FindWindow("DescargarArchivo", NULL);
AfxBeginThread(HiloDescarga,(LPVOID)pExplo);

Preguntas similares