不知道如果能够求到GRID滚到条的移动的偏移量.
也就是我拖动下面的滚动条,从开始拖到我放手这段的距离.
请高手帮忙..

解决方案 »

  1.   

    将其子类化。然后截取WM_HSCROLL以及WM_VSCROLL消息。同时结合Get-/SetScrollInfo来取得/设置信息。
      

  2.   

    下面只是一段示意代码,具体的设置比较多,但并不难懂。你可以自己查看SDK文档,我就不赘述了。OldWndProc := Grid.WndProc;
    Grid.WndProc := MyWndProc;procedure MyClass.MyWndProc(var Msg : TMessage);
    var
      si : TScrollInfo;
    begin
      si.cbSize := SizeOf(si); //初始化变量
      si.fMask := SIF_ALL; //设置掩码:取得所有信息
      case Msg.Msg of
        WM_VSCROLL :
          begin
            GetScrollInfo(Grid.Handle, SB_HORZ, si);
            //...
          end;
        WM_HSCROLL :
          begin
            GetScrollInfo(Grid.Handle, SB_VERT, si);
            //...
          end;
        else OldWndProc(Msg);
      end;
    end;