Interacción entre documentos (MDI)

10/09/2004 - 14:07 por Nacho | Informe spam
Hola a todos,

Estoy trabajando con una aplicación MDI y estoy interesado en que, al
realizar una determinada acción sobre uno de los documentos (por ejemplo,
pulsar sobre un punto determinado de la vista), automáticamente se realicen
unas operaciones asociadas sobre el otro documento ( suponiendo que tengo
dos documentos abiertos en mi aplicación).

¿Cómo puedo hacer para que, por ejemplo, la simple pulsación del ratón
me permita activar una serie de operaciones sobre el documento que no está
activo en ese momento?

Muchas gracias por adelantado.

Saludos,

Nacho

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
10/09/2004 - 14:32 | Informe spam
Puedes iterar sobre la lista de documentos (ver mas abajo como), una vez que
tienes los documentos, identificas de algún modo el documento que te
interesa y lo haces un cast a tu clase de documento. Luego usando los
miembros de tu clase documento realizas las acciones que te interese.

//Función para obtener la lista de documentos
void CMyApp::GetDocumentList(CObList * pDocList)
{
ASSERT(pDocList->IsEmpty());

POSITION pos = GetFirstDocTemplatePosition();

while (pos)
{
CDocTemplate* pTemplate = (CDocTemplate*)GetNextDocTemplate(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while (pos2)
{
CDocument * pDocument;
if ((pDocument=pTemplate->GetNextDoc(pos2)) != NULL)
pDocList->AddHead(pDocument);
}
}
}


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Nacho
10/09/2004 - 19:52 | Informe spam
Muchas gracias por tu rápida respuesta.

De todas formas sigo teniendo un problema sin resolver, y es cómo le
digo a CMyApp cuándo debe ejecutar dicha función. Así, por ejemplo, utilizo
la función OnRButtonUp dentro de la clase vista asociada al documento
correspondiente para obtener unos determinados datos cuando se pulsa con el
ratón con el botón derecho, y me interesaría que al finalizar la ejecución
del código elaborado en OnRButtonUp automáticamente se ejecutara tb. unas
determinadas funciones en el/los otro/s documento/s que tengo abierto/s,
dado que la posición en la que he pulsado me sirve para calcular unos datos
en el documento activo que a su vez necesito pasar a los otros documentos.

Saludos,

Nacho

"Rodrigo Corral [MVP]" escribió en el mensaje
news:
Puedes iterar sobre la lista de documentos (ver mas abajo como), una vez


que
tienes los documentos, identificas de algún modo el documento que te
interesa y lo haces un cast a tu clase de documento. Luego usando los
miembros de tu clase documento realizas las acciones que te interese.

//Función para obtener la lista de documentos
void CMyApp::GetDocumentList(CObList * pDocList)
{
ASSERT(pDocList->IsEmpty());

POSITION pos = GetFirstDocTemplatePosition();

while (pos)
{
CDocTemplate* pTemplate = (CDocTemplate*)GetNextDocTemplate(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while (pos2)
{
CDocument * pDocument;
if ((pDocument=pTemplate->GetNextDoc(pos2)) != NULL)
pDocList->AddHead(pDocument);
}
}
}


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org


Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
13/09/2004 - 12:52 | Informe spam
Yo lo que haría seria poner en la clase que representa el documento una
función miembro, y al llamarla esta función actualizaria la instancia del
documento. Los datos que necesites pasar para actualizar el documento,
simplemente pasalos como parametros de la función.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida