Показать сообщение отдельно
  #6  
Старый 25.04.2009, 16:53
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

Код:
type  
  TWndProc = function (Wnd : HWND; msg : Cardinal; wParam, lParam : Integer) : Integer; stdcall;

var
  NextWindowProc : TWndProc;//Сюде сохраняем указатель на старую оконную процедуру
  
function WndProc(Wnd : HWND; msg : Cardinal; wParam, lParam : Integer) : Integer; stdcall;
begin
  case msg of
    WM_MOUSEWHEEL :
      begin
        //Обрабатываешь тут
        //если ошибюсь, то hiword(wParam) - и есть нужный тебе параметр

        //На всякий случай пеередаем управление оригинальному обработчику
        Result := NextWindowProc(wnd, msg, wParam, lParam);
      end;  
    else
      Result := NextWindowProc(wnd, msg, wParam, lParam);
  end; 
end;

//эта функция уситанавливает WndProc в качестве оконной процедуры
procedure SetnyWndProc(handle : hwnd);  
begin
  if IsWindow(handle) then  
    NextWindowProc := Pointer(setWindowLong(handle, GWL_WNDPROC, Integer(@WndProc)));
end.
Тебе только нужно узнать handle своего окна. Да, это естественно работает только если окно существует в том же процессе.
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием