B
BLapBluPe
Hey,
ich habe eine klasse in der es eine funktion gibt die ,die mausklicks eines fensters abfangen soll
diese funktionen gehen außerhalb der klasse ohne probleme jedoch spuckt vc++ mir einen error aus wenn ich sie in einer klasse verwenden will
und zwar kommt es bei nur einem parameter, hier mal der code:
das problem liegt hier:
und zwar beim 3.parameter sagt mir vc++ jetzt
was meint ihr woran das liegt?
ich grübele heute schon lange daran aber ich weiß nicht wie ich es anders schreiben kann so das es geht....
danke schonmal für eure vorschläge,ideen,lösungen etc.
=)
ich habe eine klasse in der es eine funktion gibt die ,die mausklicks eines fensters abfangen soll
diese funktionen gehen außerhalb der klasse ohne probleme jedoch spuckt vc++ mir einen error aus wenn ich sie in einer klasse verwenden will
und zwar kommt es bei nur einem parameter, hier mal der code:
Code:
class Pong
{
private:
bool MausMove;
bool eckemove;
bool first;
int PongX;
int PongY;
int PongW;
int PongH;
int DifX,DifY,DifX2,DifY2;
bool eins;
public:
Pong(){
MausMove=false;
eckemove=false;
first=true;
eins=false;
PongX=100;
PongY=200;
PongW=240;
PongH=80;
}
LONG OldWndProc;
LRESULT CALLBACK NewWndProc(HWND Hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
DWORD WINAPI Creation(LPVOID);
void start();
};
LRESULT CALLBACK Pong::NewWndProc(HWND Hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
if (MouseIsOver(this->PongX, this->PongY,this->PongW, this->PongH)||this->eckemove||this->MausMove)
{
switch(Message)
{
case WM_LBUTTONDOWN:
return 0;
break;
case WM_LBUTTONUP:
return 0;
break;
case WM_LBUTTONDBLCLK:
return 0;
break;
}
}
return CallWindowProc((WNDPROC)OldWndProc, Hwnd, Message, wParam, lParam);
}
DWORD WINAPI Pong::Creation(LPVOID)
{
Sleep(2000);
HWND hWnd = FindWindow(NULL,"Guild Wars");
HMENU hCurrent = GetMenu(hWnd); //Get the CURRENT menu of the window
HMENU hNew = CreateMenu(); //Create a new one
AppendMenu(hCurrent, MF_STRING | MF_POPUP, (unsigned int)hNew, "Tutorial");
AppendMenu(hNew, MF_STRING, 2000, "Button"); //2000 is the ID of the button
DrawMenuBar(hWnd); //redraw the Menu!
OldWndProc = SetWindowLong(hWnd, GWL_WNDPROC,(long)Pong::NewWndProc); //subclass the original window procedure
//With our new one
//So now all messages sent to the notepad window, are sent to OUR window proc..See above!
return TRUE;
}
void EnemieWindow::start()
{
//
}
das problem liegt hier:
Code:
OldWndProc = SetWindowLong(hWnd, GWL_WNDPROC,(long)Pong::NewWndProc);
und zwar beim 3.parameter sagt mir vc++ jetzt
Code:
Fehler 4 error C2440: 'Typumwandlung': 'LRESULT (__stdcall Pong::* )(HWND,UINT,WPARAM,LPARAM)' kann nicht in 'long' konvertiert werden
was meint ihr woran das liegt?
ich grübele heute schon lange daran aber ich weiß nicht wie ich es anders schreiben kann so das es geht....
danke schonmal für eure vorschläge,ideen,lösungen etc.
=)