Ich weiß nicht weiter mit Subclassing



  • Hallo ich habe folgendes Problem:
    Ich habe mehrere Buttons in einem Fenster und jeder soll dieselbe Callback- Funktion nutzen.

    LONG_PTR Prev_Proc;
    
    Prev_Proc=SetWindowLongPtr(GetDlgItem(hWnd,IDC_BUTTONADD),GWLP_WNDPROC,(LONG)ButtonWndProc);
    
    LRESULT CALLBACK ButtonWndProc(HWND hWnd,UINT Message,WPARAM wParam,LPARAM lParam)
    {
    	switch(Message)
    	{
    	case WM_LBUTTONDBLCLK:
    		{
    			break;
    		}
    	case WM_MOUSEMOVE:
    		{
    			break;
    		}
    		break;
    	}
    
    	return CallWindowProc((WNDPROC)Prev_Proc,hWnd,Message,wParam,lParam);
    }
    

    Ich kann ja nicht schreiben:

    Prev_Proc=SetWindowLongPtr(GetDlgItem(hWnd,IDC_BUTTONADD),GWLP_WNDPROC,(LONG)ButtonWndProc);
    Prev_Proc=SetWindowLongPtr(GetDlgItem(hWnd,IDC_BUTTONDEL),GWLP_WNDPROC,(LONG)ButtonWndProc);
    Prev_Proc=SetWindowLongPtr(GetDlgItem(hWnd,IDC_BUTTONSEARCH),GWLP_WNDPROC,(LONG)ButtonWndProc);
    ...
    

    Und mehrere male eine Callback- Funktion für jeden Button frisst ja ne Menge speicher.



  • Vielleicht ist Superclassing eher was für dich?



  • ich würd SetProp benutzen.

    Und mehrere male eine Callback- Funktion für jeden Button frisst ja ne Menge speicher.

    oh ja, unheimlich viel. 👍 👎 👍 👎


Anmelden zum Antworten