🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.c++
Article #16233

Re: CALLBACK como metodo de una clase

#16233
From: miguel
Date: Wed, 25 Dec 1996 00:00
102 lines
3105 bytes


Enrique Ventura P�rez <eventura@theos.es> escribi� en art�culo
<32be3dcb.3114980@noticias.ibernet.es>...
> El dia 22 Dec 1996 21:11:50 GMT, "miguel" <mangel@purplesys.es>
> escribio:
> 
> >Alguien sabe si es posible que una callback sea un metodo de una clase.
> >
> >Gracias por adelantado.
> >
> >mangel@purplesys.es
> 
> El problema de utilizar una funcion de una clase como CALLBACK es el
> parametro "this" oculto que tienen todas las funciones de clase que no
> esten declaradas como "static". 
> 
> Si tiene declaracion static no te encontraras ningun problema, pero te
> obligara a pasar cmo parametro del callback el elemento de la clase
> sobre el cual quieres efectuar la operacion
> 
> Saludos:
> 
> Enrique Ventura
> eventura@theos.es
> 
> Enrique Ventura
> Advanced Software Technologies
> 
> eventura@theos.es
> 100564.1457@compuserve.com
> 
Hola Enrique gracias por contestarme.
Mi intencion es hacer una clase que sea un reloj. 
No consigo ni siquiera compilar. 
Por favor si fueras tan amable de echarle un vistazo a mi codigo e
indicarme que hago mal. Te envio solo parte del codigo si necesitas mas
informacion dimelo y te envio el fuente completo.

Gracias y feliz navidad.

Miguel Angel
mangel@purplesys.es



LRESULT CALLBACK WindowProcMiVentana(HWND,UINT,WPARAM,LPARAM);

class Pru
{
public :
	TIMERPROC FunTimerProc;
	Pru(){};
	~Pru(){};
	void Activa();
	VOID CALLBACK MiReloj(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime);
};

void Pru::Activa()
{
/***************************************************************************
*****************************/
/**       AQUI HE INTENTADO TODAS LAS COMBINACIONES QUE SE ME OCURREN **/
/**       PERO SIEMPRE ME CASCA EN COMPILACION.				        **/
/***************************************************************************
*****************************/
	//FunTimerProc = (TIMERPROC) MakeProcInstance(&Pru::MiReloj, hinst);
	//FunTimerProc = (TIMERPROC ) Pru::MiReloj;
	//SetTimer(hw, 1000, 5000, FunTimerProc);
	//SetTimer(hw, 1000, 5000, &Pru::MiReloj);
}

VOID CALLBACK Pru::MiReloj(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
		MessageBox(0,"hola","hola",MB_OK);
}


Pru *p;




LRESULT CALLBACK  WindowProcMiVentana(HWND hWnd,UINT mensaje,WPARAM
wParam,LPARAM lParam)
{

	switch (mensaje)
    {
	  case WM_CREATE :	PostMessage(hWnd,MM_DESPUES,(WPARAM)0,(LPARAM)0);
				break;
	  case MM_DESPUES : p = new Pru();
				break;
	  case WM_DESTROY : delete p;
				PostQuitMessage(0);
				break;

	  default : return (DefWindowProc(hWnd,mensaje,wParam,lParam));
	}
	return FALSE;
}
Technical Details
Message-ID: <01bbf266$1a891cc0$914a4cc3@miguel>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <01bbf04d$8440ae00$844a4cc3@miguel> <32be3dcb.3114980@noticias.ibernet.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f53ec,a128c13e93fff8df
X-Google-Attributes: gidf53ec,public
From: "miguel" <mangel@purplesys.es>
Subject: Re: CALLBACK como metodo de una clase
Date: 1996/12/25
Message-ID: <01bbf266$1a891cc0$914a4cc3@miguel>
X-Deja-AN: 205901714
references: <01bbf04d$8440ae00$844a4cc3@miguel> <32be3dcb.3114980@noticias.ibernet.es>
organization: miguel
newsgroups: es.comp.lenguajes.c++