procedure TForm1.NewGridWnd(var Message: TMessage);
var
IsNeg : Boolean;
begin
if Message.Msg = WM_MOUSEWHEEL then
begin
IsNeg := Short(Message.WParamHi) < 0;
if IsNeg then
DBGrid1.DataSource.DataSet.MoveBy(1)
else
DBGrid1.DataSource.DataSet.MoveBy(-1)
end
else
OldGridWnd(Message);
end;
procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.message = WM_MOUSEWHEEL) and (Msg.hwnd = DBGrid1.Handle) then
begin
//处理程序
end
else
inherited;
end;
3:窗体子类化
function SubClassWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM):LResult;stdcall;
begin
if Msg = WM_MOUSEWHEEL then
begin
//处理程序
Result := 0;
end
else
begin
Result := CallWindowProc(Pointer(i),Form1.Button1.handle,Msg,WParam,LParam);
end;
end;