Mi problema de Hilos, casi resuelto

02/07/2004 - 10:54 por sandra_soria81 | Informe spam
Hola a todos!!!! Casi tengo solucionado mi problema de hilos, gracias a
mucha gente que me ha ayudado, y guiado; El problema era modificar una
caja de texto desde otro hilo, distinto al original, que es donde se creo;
Para ello:

HWND HandleEvolucionDescarga m_pPrincipal>m_CtrlEvolucionDescarga.GetSafeHwnd();
Handle de la ventana que quiero modficar; Se la paso al hilo:
AfxBeginThread(HiloDescarga, (LPVOID)HandleEvolucionDescarga);

En el hilo creo un objeto:
CEdit* EvolucionDescarga = (CEdit*) CWnd::FromHandle
((HWND)pEvolucionDescarga);

Y a partir de este, modifico el contenido:

EvolucionDescarga->GetWindowText(tmp);
tmp += _T("");
tmp += _T("Guardando en el fichero:");
EvolucionDescarga->SetWindowText(tmp);

Me sale perfectamente, pero ahora bien, realmente lo que quiero es modicar
varias cajas de texto, encuadradas en un control por pestañas, mi idea era
pasar por los parametros del hilo, tantos handles como ventanas, pero me
da un error, no se si es ke no se puede, o no se...:

HWND HandleEvolucionDescarga m_pPrincipal->m_CtrlEvolucionDescarga.GetSafeHwnd();

HWND HandleDescargados = m_pPrincipal->m_CtrlDescargados.GetSafeHwnd();

AfxBeginThread(HiloDescarga, (LPVOID)HandleEvolucionDescarga,
(LPVOID)HandleDescargados);

Me da un error en la llamada al hilo, en AfxBegin..., para ello tengo
declarado el hilo:

HiloDescarga(LPVOID,LPVOID);

Me da el siguiente error:
none of the 2 overloads can convert parameter 1 from type 'unsigned int
(__cdecl *)(void *,void *)'

Gracias por leerme, y gracias por ayudarme;

Preguntas similare

Leer las respuestas

#6 Sergio
02/07/2004 - 13:02 | Informe spam
Sergio wrote:

Sandra wrote:

Si, ahora no produce fallo de compilacion en la llamada:
UINT HiloDescarga(LPVOID lParam)
{
varioshandles *pHandles = (varioshandles *)lParam;

CEdit* Descargados = (CEdit*) CWnd::FromHandle
((HWND)pHandles->HandleDescargados); CString tmp;
Descargados->GetWindowText(tmp); tmp += _T("Archivo: ");
tmp += _T("");
Descargados->SetWindowText(tmp);
Ahora el fallo es en tiempo de ejecucion:

void CWnd::SetWindowText(LPCTSTR lpszString)
{
-> ASSERT(::IsWindow(m_hWnd));

if (m_pCtrlSite == NULL)
::SetWindowText(m_hWnd, lpszString);
else
m_pCtrlSite->SetWindowText(lpszString);
}

Seguire intentandolo, y si se os ocurre algo, lo probare; Gracias;




Toy perplejo, a mi si me funciona, te mando la prueba que yo he hecho.
Es un dialogo con dos CEdit. Escribe en el de la izquierda lo que
quieras, y cuando le des al boton que pone button1 (o así) te añadira a
lo que tengas " y olé".




Como has comentado que tienes que actualizar las cajas de texto de un
dialogo desde otro, he hecho otra pruebilla, con un dialogo modal que
llama al hilo, y el hilo creado desde el modal actualiza el texto del
padre. Para no llenar esto de ficheritos, aunque sean pequeños, si
quieres te lo mando a tu correo. Ya me dirás.
Respuesta Responder a este mensaje
#7 sandra_soria81
02/07/2004 - 13:13 | Informe spam
Si, muchas gracias, mandame las pruebas que has hecho al correo; La otra
no me deja descargarla, dice que el fichero no existe;


Sergio wrote:

Sergio wrote:

> Sandra wrote:
>
>> Si, ahora no produce fallo de compilacion en la llamada:
>> UINT HiloDescarga(LPVOID lParam)
>> {
>> varioshandles *pHandles = (varioshandles *)lParam;
>>
>> CEdit* Descargados = (CEdit*) CWnd::FromHandle
>> ((HWND)pHandles->HandleDescargados); CString tmp;
>> Descargados->GetWindowText(tmp); tmp += _T("Archivo: ");
>> tmp += _T("rn");
>> Descargados->SetWindowText(tmp);
>> Ahora el fallo es en tiempo de ejecucion:
>>
>> void CWnd::SetWindowText(LPCTSTR lpszString)
>> {
>> -> ASSERT(::IsWindow(m_hWnd));
>>
>> if (m_pCtrlSite == NULL)
>> ::SetWindowText(m_hWnd, lpszString);
>> else
>> m_pCtrlSite->SetWindowText(lpszString);
>> }
>>
>> Seguire intentandolo, y si se os ocurre algo, lo probare; Gracias;
>
>
> Toy perplejo, a mi si me funciona, te mando la prueba que yo he hecho.
> Es un dialogo con dos CEdit. Escribe en el de la izquierda lo que
> quieras, y cuando le des al boton que pone button1 (o así) te añadira a
> lo que tengas " y olé".
>

Como has comentado que tienes que actualizar las cajas de texto de un
dialogo desde otro, he hecho otra pruebilla, con un dialogo modal que
llama al hilo, y el hilo creado desde el modal actualiza el texto del
padre. Para no llenar esto de ficheritos, aunque sean pequeños, si
quieres te lo mando a tu correo. Ya me dirás.
Respuesta Responder a este mensaje
#8 sandra_soria81
05/07/2004 - 15:29 | Informe spam
Al final me sale con lo de la estructura de handles; Muchas gracias!!

Sandra wrote:

Si, muchas gracias, mandame las pruebas que has hecho al correo; La otra
no me deja descargarla, dice que el fichero no existe;


Sergio wrote:

> Sergio wrote:

> > Sandra wrote:
> >
> >> Si, ahora no produce fallo de compilacion en la llamada:
> >> UINT HiloDescarga(LPVOID lParam)
> >> {
> >> varioshandles *pHandles = (varioshandles *)lParam;
> >>
> >> CEdit* Descargados = (CEdit*) CWnd::FromHandle
> >> ((HWND)pHandles->HandleDescargados); CString tmp;
> >> Descargados->GetWindowText(tmp); tmp += _T("Archivo: ");
> >> tmp += _T("rn");
> >> Descargados->SetWindowText(tmp);
> >> Ahora el fallo es en tiempo de ejecucion:
> >>
> >> void CWnd::SetWindowText(LPCTSTR lpszString)
> >> {
> >> -> ASSERT(::IsWindow(m_hWnd));
> >>
> >> if (m_pCtrlSite == NULL)
> >> ::SetWindowText(m_hWnd, lpszString);
> >> else
> >> m_pCtrlSite->SetWindowText(lpszString);
> >> }
> >>
> >> Seguire intentandolo, y si se os ocurre algo, lo probare; Gracias;
> >
> >
> > Toy perplejo, a mi si me funciona, te mando la prueba que yo he hecho.
> > Es un dialogo con dos CEdit. Escribe en el de la izquierda lo que
> > quieras, y cuando le des al boton que pone button1 (o así) te añadira a
> > lo que tengas " y olé".
> >

> Como has comentado que tienes que actualizar las cajas de texto de un
> dialogo desde otro, he hecho otra pruebilla, con un dialogo modal que
> llama al hilo, y el hilo creado desde el modal actualiza el texto del
> padre. Para no llenar esto de ficheritos, aunque sean pequeños, si
> quieres te lo mando a tu correo. Ya me dirás.
Respuesta Responder a este mensaje
#9 Sergio
05/07/2004 - 16:13 | Informe spam
Sandra wrote:
Al final me sale con lo de la estructura de handles; Muchas gracias!!



De nada, para eso estamos ;)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida