Article View: es.comp.lenguajes.c++
Article #16233Re: CALLBACK como metodo de una clase
From: miguel
Date: Wed, 25 Dec 1996 00:00
Date: Wed, 25 Dec 1996 00:00
102 lines
3105 bytes
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-mailReferences:
<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++