Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/09/2006, 23:45
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 9 meses
Puntos: 2
Je je, ya tan pronto estas intentando POO con el WinAPI?

primero aprende a caminar, jeje.

Este problema es muy clasico, cuando alguien quiere adaptar el WinAPI a la POO.

el problema es este.

Que tipo es el miembro de la estructura lpfnWndProc??

La respuesta, es un typedef WNDPROC el cual es un puntero a una funcion de tipo:
LRESULT CALLBACK Proc(HWND, UINT, WPARAM, LPARAM).

el puntero es este

typedef LRESULT (CALLBACK*WNDPROC)(HWND, UINT, WPARAM, LPARAM);

ahora tu Procedimiento de ventana no concuerda con este tipo.
ya que el tuyo es:

LRESULT App::WndProc(HWND, UINT, WPARAM, LPARAM);

es una funion miembro, y en C++ un puntero a funcion no es lo mismo que un puntero a funcion miembro.

por tanto a lpfnWndProc solo le podemos asignar una funcion estatica o un a funcion no miembro.

por tanto hay 2 formas de solucionar esto.

usar WndProc como una funcion miembro estatica o como una funcion global amiga de tu clase.

con eso creo que resuelves tu problema, despues te encontraras con otro muy clasico, pero todo a su tiempo..

Saludos.