
05/09/2006, 23:45
|
| | 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. |