Subclassowanie okien (moja specjalność

)
Tak jak napisał winthux trzeba podpiąc się pod rodzica....
1. Przechwytujesz tworzenie okna, a tam
CODE
SetProp(hwnd,"Subclass",SetWindowLong(hwnd,GWL_WNDPROC,(LONG)WndProc));
2. Teraz WndProc
CODE
LRESULT CALLBACK WndProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam) // second message parameter
{
switch (uMsg)
{
/* tu przechywytujemy i analizujemy wiadomości, jeżeli nie chcemy nie musimy przekazyać dalej/*
case WM_NOTIFY: // Obsługa WM_NOTIFY
{
NMHDR* head = (NMHDR*) lParam;
switch(head->code)
{
/* tu przetwarzamy wm_notify, dodałem ten przykład co by było łatwiej */
}
break;
}
}
return CallWindowProc((WNDPROC)GetProp(hwnd,"Subclass"),hwnd,uMsg,wParam,lParam);
}
Zamiast SetProp i GetProp można użyć w zasadzie zmiennej, ale... musimy być pewni że wszystkie okna będą miały taką samą procedurę (np. konnferencja i ggimage subclassują tylko okna kiedy siec to gg) - moje rozwiązanie daje spokój że będzie ok