C/Visual C - Mensajes

 
Vista:

Mensajes

Publicado por Alex (6 intervenciones) el 07/05/2001 21:01:35
Tengo dos ventanas, una padre y otra hija, en un momento dado la ventana hija manda un mensaje a la ventana padre, el cual procesa y como resultado de ello obtiene un valor, el cual necesita mi ventana hija.

¿Como puedo hacer que la hija recoga ese valor?, si usar claro esta variables globales y tampoco me vale enviar otro mensaje desde el padre al hijo pasandole como parametro el valor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mensajes

Publicado por Esteban Peral (2 intervenciones) el 07/05/2001 23:34:09
Tengo una solucion a lo que quieres hacer, a mi me funciona, espero y a ti tambien!.....

En esta parte mandas el mensaje!.....

if (FindWindow(NULL, _T("Titulo de la vemta a recibir el mensaje")) != NULL)
{
// Si la ventana existe!....
CWnd wPTGM;

wPTGM.m_hWnd = FindWindow(NULL, _T("Titulo de la vemta a recibir el mensaje"));

wPTGM.PostMessage(WM_USER+49, 1, 1);
}


Y en la otra la recibes en:

LRESULT CPTGMDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_USER+49)
AfxMessageBox("Recibio el mensaje!.....");

return CDialog::WindowProc(message, wParam, lParam);
}

Espero y te sirva de algo!....

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agredecimiento

Publicado por Alex (1 intervención) el 08/05/2001 19:12:44
Gracias pero no me vale ya que no puedo hacer uso de MFC, gracias de todas maneras, lo he solucionado cambiando de estrategia porque me he dado por vencido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mensajes

Publicado por Wences Martin (3 intervenciones) el 11/05/2001 15:47:45
Cuando el padre procesa el mensaje puede devolver un valor (LRESULT) que se corresponde con un entero de 32 bits.

// ventana padre
.
.
case WM_LOQUESEA:
.
.
.
return <valor>

case WM.....

// ventana hija

int respuesta;

respuesta=SendMessage(padre,WM_LOQUESEA,.......


donde respuesta no tiene xq ser un valor sino, por ejemplo, un handle de memoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar