Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Mapas de mensajes

Iniciado por Antares, 19 de Noviembre de 2002, 08:38:24 PM

« anterior - próximo »

Antares

                                Enassss:

¿Como se invoca a una funcion de otra clase diferente a la clase desde la que se le invoca?

La funcion esta en la clase CReempView
Y la quiero invocar desde la clase CTreeMap derivada de CTreeCtrl.

Pensaba que era asi;
((CReempView *)GetParent()->ContarChequeados());
pero me da este error:
error C2039: 'ContarChequeados' : is not a member of 'CWnd'


Salud2

//////////////////////////////////////////////////////////////////////

Detalles:

Tengo un libro que un buen amigo mio me dejo y pone que para implementar el mapa de mensajes de la ventana padre debo hacer una clase derivada de la clase del control al que quiero añadirle el mapa de mensajes.

Lo cuenta muy bien y muy detalladamente pero al empezar el primer paso (derivar una clase de la clase del control y meterla en el xxxView.cpp y xxxView.h usando un formulario como vista principal) resulta que me da este aviso    "The files (ReempView.h, ReempView.cpp) for the new class CTreeMapa contain remans of that class"    y no me deja crearla dentro del xxxView.

He eliminado todas las las funciones (pq lo q entiendo es que los archivos xxxView contienen restos de la clase CTreeCtrl) y me sigue pasando lo mismo amenos que borre todo en cuyo caso si me escribe el codigo de la nueva clase en el archivo xxxView.

asi q he cortado el codigo, he declarado la clase, he pegado el codigo y he ordenado el codigo de la nueva clase antes de la declaracion de la clase CReempView. he eliminado el antiguo objeto miembro m_CtrlLista y he creado uno nuevo con el mismo nombre pero con tipo de variable" de la nueva clase. Y funciona cuando hay un evento que antes no podia procesar se procesa en la nueva clase CTreeMapa pero si llamo asi...
((CReempView *)GetParent()->ContarChequeados());
...a la funcion que quiero que se ejecute cuando pasa el evento me da este error:
error C2039: 'ContarChequeados' : is not a member of 'CWnd'

¿Como llamo a la funcion de otra clase?

Me queda decir que la funcion esta declarada asi:
void ContarChqueados();
en ReempView.h

GRACIAS.                                

fiero

                                Hola, no sé si te habrás confundido al copiar, pero para decirle que el puntero es (CReempView *) el paréntesis se pone antes de ->

((CReempView *)GetParent())->ContarChequeados();

Yo a veces he tenido que hacer varios GetParent() seguidos para acceder a funciones de las clases padre, aunque no sé si es tu caso, por probar, por ejemplo:

((CReempView *)GetParent()->GetParent())->ContarChequeados();


De todas formas cuando me lea más detenidamente tu post espero contestar,... es que no lo he entendido... hoy estoy espeso. :oops:

saludos                                
www.videopanoramas.com Videopanoramas 3D player

Antares

                                :oops: vaya, vaya, vaya.

Use cortar y pegar para poner esa linea y no se q paso con el parentesis. Por eso no dudaba de su correcta construccion. En fin... una leccion mas.

Hice bien en postear los detalles por parte....


Asi si es una chorrada se contesta facil, pero si requiere un conocimiento mas profundo del problema pos ahi estan los detalles.

Y no me estraña que no entendieras mi post (Supongo que te refieres a los detalles) pq si no lo hubiera escrito yo, tampoco menteraria de ná.

Ahora comprendo porq el lenguaje de los libros de programacion es tan liante... pq cuanto mas claro lo intetas dejar mas liado se queda.

Gracias otra vez.                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.