Handeln der Nachrichten einer Toolbar, die sich in einem TabControl befindet.



  • Hi,

    Ich habe in meinem TabControl mit dem Handle "hTc" eine Toolbar mit dem Handle "hTB_Haupt". Nun möchte ich die Nachrichten verarbeiten die mir die Toolbar zurückgibt. Dazu muss ich ja irgendwie dem TabControl eine WndProc zuweisen und darin via WM_COMMAND die Nachrichten verarbeiten. Ich habe das ganze schon mal versucht, aber es klappt nicht schaut mal meinen Code an:

    LRESULT CALLBACK ToolWndProc(HWND hTc, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch (message)
    	{
    	case WM_COMMAND:
    		switch(LOWORD(wParam))
    		{
    		case IDM_NEW:
    			{
    				MessageBox(NULL,"sfasfsf","fsggh",NULL);
    				return 0;
    			}
    			return 0;
    		}
    	}
    	return CallWindowProc(WndProc, hWnd, message, wParam, lParam); // eigentlich wollte ich anstatt WndProc Die Variable old verwenden, doch irgendwie verträgt sich dieser nicht mit long.
    
    }
    
    hTc = CreateWindowEx (NULL, WC_TABCONTROL, NULL, WS_CHILD | WS_VISIBLE | TCS_TABS | TCS_FIXEDWIDTH, 0, 0, 1024, 55, hWnd, NULL, hInst, NULL);
    	SendMessage(hTc, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), 0);
    	SendMessage(hTc, TCM_SETPADDING, 0, (0,30));
    	old = GetWindowLong(hWnd, GWL_WNDPROC);
    	SetWindowLong(hTc, GWL_WNDPROC, reinterpret_cast<long>(ToolWndProc));
    

    Das ist eigentlich der ganze Code der damit zu tun hat, ich hoffe ihr könnt mir helfen damit das ganze funktioniert, denn ich möchte entlich weiterkommen.

    MFG
    Gfxer



  • (WNDPROC)old - also nach WNDPROC casten



  • Was soll das bitte heissen? Da kommt ja keiner drauf.



  • return CallWindowProc(WndProc, hWnd, message, wParam, lParam); // eigentlich wollte ich anstatt WndProc Die Variable old verwenden, doch irgendwie verträgt sich dieser nicht mit long.
    
    return CallWindowProc((WNDPROC)old, hWnd, message, wParam, lParam);
    

Anmelden zum Antworten