Привет, у меня есть форма с несколькими фреймами внутри.
Для некоторых фреймов я хочу прокрутить содержимое (или, по крайней мере, обработать событие колеса мыши).
Я пробовал следующее:
Простое назначение обработчика события OnMouseWheel для каждого кадра
Переопределение события MouseWheel для родительской формы:
procedure TFmReview.MouseWheelHandler(var Message: TMessage);
var Control: TControl;
begin
Control := ControlAtPos(ScreenToClient(SmallPointToPoint(TWMMouseWheel(Message).Pos)), False, True);
if Assigned(Control) and (Control <> ActiveControl) then
begin
ShowMessage(Control.Name);
Message.Result := Control.Perform(CM_MOUSEWHEEL, Message.WParam, Message.LParam);
if Message.Result = 0 then
Control.DefaultHandler(Message);
end else inherited MouseWheelHandler(Message);
end;
К сожалению, оба варианта не работают.
Проще говоря, как я могу направить событие колеса мыши на самый верхний элемент управления, над которым находится курсор мыши (независимо от того, в каком фрейме / родительском элементе / форме и т. Д. Находится курсор)?