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