delphi=dbgrid鼠标滚轮效果怎么实现?现在显示的记录只能拖滚动条浏览,想让鼠标滚轮起作用。
菜鸟一个,请多多指教。多谢

解决方案 »

  1.   

    http://seteastboy.blog.163.com/blog/static/26330268200992393445806/
      

  2.   


    跟我想回答的一样。sendmessage SendMessage(DBGRID1.Handle,WM_VSCROLL,SB_LINEDOWN,0) ;
      

  3.   

      private
         procedure ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean);      //在下面的过程写好后直接按Ctrl+Shift+C将自动生成此段代码
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    //------------------------------------------------------------------------------
    procedure  TForm1.ApplicationEvents1Message(var  Msg:  tagMSG;var  Handled:  Boolean);
    begin
     if  (DBGrid1.Focused)  And  (Msg.message  =  WM_MOUSEWHEEL)  then
           begin
               if  Msg.wParam  >  0  then
                   SendMessage(DBGrid1.Handle,  WM_KEYDOWN,  VK_UP,  0)
               else
                   SendMessage(DBGrid1.Handle,  WM_KEYDOWN,  VK_DOWN,  0);
               Handled  :=  True;
           end;
     if  (DBGrid2.Focused)  And  (Msg.message  =  WM_MOUSEWHEEL)  then               //如果有两个DBGrid
           begin
               if  Msg.wParam  >  0  then
                   SendMessage(DBGrid2.Handle,  WM_KEYDOWN,  VK_UP,  0)
               else
                   SendMessage(DBGrid2.Handle,  WM_KEYDOWN,  VK_DOWN,  0);
               Handled  :=  True;
           end;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.OnMessage:=ApplicationEvents1Message; // 截获鼠标滚动事件
    end;