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);