LRESULT CALLBACK w klasie

Odpowiedz Nowy wątek
2006-08-17 15:27
0

Witam,

w klasie mam:

LRESULT CALLBACK DLG_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
WNDPROC oldDLG_Proc;
 
bool Rejestruj(HINSTANCE hInstance);

za klasą:

LRESULT CALLBACK (ZR_CONTROLS::DLG_Proc)(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
   switch(uMsg){
   //......
   }
   return CallWindowProc(oldDLG_Proc, hwnd, uMsg, wParam, lParam);
}
 
bool ZR_CONTROLS::Rejestruj(HINSTANCE hInstance){
   WNDCLASS wd;
   if(GetClassInfo(hInstance, "JAKAS", &wd)){
      wd.lpszMenuName  = NULL;
      wd.lpszClassName = "INNA";
      wd.hInstance     = hInstance;
      oldDLG_Proc      = wd.lpfnWndProc;
      wd.lpfnWndProc   = DLG_Proc;
      if(!RegisterClass(&wd)){
         return false;
      }
   return true;
}

I wywala mi błąd:
"hook.cpp": E2235 Member function must be called or its address taken in function ZR_CONTROLS::Rejestruj_Moje_Przyciski(HINSTANCE__ *) at line 89

Jak mu dam:

wd.lpfnWndProc   = &DLG_Proc;

To wywala:
"hook.cpp": E2034 Cannot convert 'long (stdcall (_closure )(HWND__ ,unsigned int,unsigned int,long))(HWND *,unsigned int,unsigned int,long)' to 'long (stdcall )(HWND__ ,unsigned int,unsigned int,long)' in function ZR_CONTROLS::Rejestruj_Moje_Przyciski(HINSTANCE *) at line 89

Jeśli cąły ten kod nie jest zapięty w klasę to działa normalnie. Czemu on się w klasie czepia? Co jest nie tak z LRESULT CALLBACK, że nie może być w klasie?

Dzięki z góry za odpowiedzi!

Pozostało 580 znaków

2006-08-17 16:06
0

http://www.rpi.edu/~pudeyo/articles/wndproc/


Pozostało 580 znaków

2006-08-17 17:32
0

[green] Dzięki [browar]

Pozostało 580 znaków

2009-06-22 14:07
arro
0

ponawiam pytanie, też mam ten sam problem(link nie działa)

Pozostało 580 znaków

2009-06-22 14:39
Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0