怎么铺获TDBGrid上的鼠标滑轮事件???

解决方案 »

  1.   

    //处理鼠标的滚动事件
        procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;procedure TCardTempletOcx.CMMouseWheel(var Message: TCMMouseWheel);
    var
      pos: integer;
    begin
      if RateCob.Focused or CobFont.Focused then
      begin
        //Showmessage('');
        exit;
      end;  if Not Tree.Focused then  //如果结构树没有获得焦点
      begin
        if Message.WheelDelta > 0 then   //如果是向上滚动
        begin
          pos:= bsSkinScrollBar1.Position - 20;  //滚动的最小单位是5个象素
          if pos < 0 then pos:= 0;              //如果到达顶部
        end else
        begin                            //向下滚动
          pos:= bsSkinScrollBar1.Position + 20;
          if Pos > bsSkinScrollBar1.Max then    //如果到达底部
            Pos:= bsSkinScrollBar1.Max;
        end;
        bsSkinScrollBar1.Position:= pos;        //设置滚动条的位置
      end;
      inherited;    //分发给窗体上的子控件,以便其他控件可以处理滚动事件。
    end;