delphi – 如何直接鼠标滚轮输入控制下光标而不是聚焦?
发布时间:2020-12-15 05:23:41 所属栏目:大数据 来源:网络整理
导读:我使用了许多滚动控件:TTreeViews,TListViews,DevExpress cxGrids和cxTreeLists等。当鼠标滚轮旋转时,无论鼠标光标在什么控件上,焦点控件都接收输入。 如何将鼠标滚轮输入指向鼠标光标所在的任何控件? Delphi IDE在这方面非常好。 解决方法 尝试重写您
我使用了许多滚动控件:TTreeViews,TListViews,DevExpress cxGrids和cxTreeLists等。当鼠标滚轮旋转时,无论鼠标光标在什么控件上,焦点控件都接收输入。
如何将鼠标滚轮输入指向鼠标光标所在的任何控件? Delphi IDE在这方面非常好。 解决方法
尝试重写您的表单的MouseWheelHandler方法像这样(我没有彻底测试):
procedure TMyForm.MouseWheelHandler(var Message: TMessage); var Control: TControl; begin Control := ControlAtPos(ScreenToClient(SmallPointToPoint(TWMMouseWheel(Message).Pos)),False,True,True); if Assigned(Control) and (Control <> ActiveControl) then begin Message.Result := Control.Perform(CM_MOUSEWHEEL,Message.WParam,Message.LParam); if Message.Result = 0 then Control.DefaultHandler(Message); end else inherited MouseWheelHandler(Message); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |