Delphi 拦截滚轮事件不响应滚轮的上下滚动

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type TForm1 = class(TForm) 
Panel1: TPanel; ComboBox1: TComboBox; Label1: TLabel; procedure FormCreate(Sender: TObject); private { Private declarations } 
Procedure OnMouseWheel(Var Msg: TMsg; var Handled: Boolean);

public { Public declarations }
end;

var Form1: TForm1;

implementation {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); 
begin 
Application.OnMessage := OnMouseWheel; 
end;

procedure TForm1.OnMouseWheel(var Msg: TMsg; var Handled: Boolean);
begin 
     if Msg.message = WM_MOUSEWHEEL then 
         if (ActiveControl IS TComboBox) or (ActiveControl IS TStringGrid) then//TComboBox和 TStringGrid不响应滚轮
              Handled := True; 
end;

procedure TForm1.FormDestroy(Sender: TObject); 
begin 
Application.OnMessage := nil;
end;

end.

http://www.cnblogs.com/tulater/p/6401799.html

时间: 2024-10-12 08:29:04

Delphi 拦截滚轮事件不响应滚轮的上下滚动的相关文章

opencv与mfc显示图片操作,MFC的鼠标响应在opencv图片上失效,opencv滚轮事件没有响应问题描述解决。

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11588758.html 用mfc 与OPENCV编写成. 出了很多冲突异常事件导致鼠标操作没有响应 当opencv窗口与mfc控件绑定时,可以认为opencv绑定区域覆盖在mfc 控件上,此时mfc本身的鼠标响应在此区域失效,只能调用opencv的鼠标响应事件. 而当你调用opencv的鼠标滚轮事件时候又会没有反应,此时是因为mfc的鼠标滚轮事件优先级别更好 ,只能在这里用mfc的鼠标滚轮响

Web前端探索之滚轮事件(wheelEvent)

前段时间使用canvas做滚动条控件,添加滚轮事件时,查阅了一些资料,发现大都是文档描述或简单示例,对于开发者还是不够.wheelEvent对象中的一些属性(比如wheelDelta.detail等)虽然官方文档有完整描述,但部分或大部分浏览器厂商并没有(真正)实现,这就很容易诱导大家错误使用.所以我针对当前常用浏览器重新测试了一下. 测试目标:探索wheelEvent事件中常用属性的有效性,垂直步进算法(滑动幅度)以及与电脑个性化设置的关联 测试环境:Windows操作系统,Firefox54

JS事件-鼠标滚轮事件

之前学习了onmouseover,onmousedown等鼠标事件,今天来看看鼠标的滚轮事件,浏览器兼容一直是让人比较恶心的事情,今天就让我们将恶心进行到底,看看这个恶心的鼠标滚轮事件! 鼠标滚轮事件在IE和谷歌浏览器Chrome下是通过onmousewheel这个事件实现的,但是火狐FF下却不识别onmousewheel,在FF下需要用DOMMouseScroll,并且必须用"事件监听"方式添加事件才有效: 而大家都知道"事件监听"方式绑定事件: IE下是通过at

鼠标滚轮事件---兼容

鼠标滚轮事件绑定及滚轮方向兼容demo <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } #test{ width: 200px; height: 200px; background: pink

鼠标滚轮事件

由于浏览器的不同,对鼠标滚轮事件也有所不同,大致可分为DOMMouseScroll 和onmousewheel两类 1.第一类是Firefox支持的DOMMouseScroll事件,此事件必须以addEventListener来绑定,当鼠标滚轮上下滚动时 ev.detail向上为-3,向下为3. 2.第二类是IE/chrome支持的onmousewheel事件,当鼠标滚轮上下滚动时 ev.wheelDelta向上为120,向下为-120.

动手封装一个滚轮事件吧!

/*滚轮事件函数封装*/ Object.prototype.onmousewheelhandlefun=function(handle){ var info=navigator.userAgent; var down=null; if(info.indexOf("Firefox")!=-1){ this.addEventListener("DOMMouseScrool",funciton(event){ var ev=event||window.event; if(

mousewheel滚轮事件

原生的滚轮事件:火狐与其他浏览器使用了不同的事件 /* * 滚轮事件只有firefox比较特殊,使用DOMMouseScroll; 其他浏览器使用mousewheel; * */ // firefox document.body.addEventListener("DOMMouseScroll", function(event) { var direction= event.detail && (event.detail > 0 ? "mousedown

鼠标滚轮事件的监听

鼠标滚轮事件的监听原理:判断鼠标滚轮的滚动获取一个值,根据这个值判断滚动的方向.分析:首先,判断滚轮方向.Firefox:detail,取值为-/+3(负值向上,正值向下):其他:wheelDelta,取值为+/-120(正值向上,负值向下).兼容所有浏览器的的封装: ? 1 2 3 4 5 6 7 8 9 10 function scrollEvent(ev){     ev = ev || window.event;     var data = '';     if(ev.wheelDel

js滚轮事件需要注意的兼容性问题

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #div { width: 300px; height: 300px; background: red; } </style> <script> function addEven