我使用了许多滚动控件:TTreeViews,TListViews,DevExpress cxGrids和cxTreeLists等.当旋转鼠标滚轮时,无论鼠标光标处于何种控制状态,焦点控件都会接收输入.
如何将鼠标滚轮输入指向鼠标光标所在的控制?Delphi IDE在这方面非常有效.
我在表单中有一个TListView组件.它很长,我希望用户能够滚动它,如果鼠标在组件上方并滚动滚轮.我没有为TListView对象找到任何OnMouseWheel,OnMouseWheelDown或OnMouseWheelUp事件.我怎样才能做到这一点?
问候,邪恶
我创建了一个源自 TGraphicControl 的 delphi 组件。是否可以添加对鼠标滚轮的支持?
- - 编辑 - -
我已经公开了如下所示的 MouseWheel 事件,但它们没有被调用。
TMyComponent = class(TGraphicControl)
published
property OnMouseWheel;
property OnMouseWheelDown;
property OnMouseWheelUp;
end;
Run Code Online (Sandbox Code Playgroud)
- - 编辑 - -
正如下面所建议的,我试图捕获 WM_MOUSEWHEEL 和 CM_MOUSEWHEEL 消息,但它似乎不起作用。但是我设法捕获了 CM_MOUSEENTER 消息。我不明白为什么我可以捕获一种类型的消息,而不能捕获另一种。