我横向拖动dbgride的SCROLLBAR时,希望里面内容也跟着同步变化。
我也写了个捕获消息的函数,反正实现不了这个功能,希望大家赐教procedure TMainForm.ClassWndProc4(var Msg: TMessage);
var
  ScrollInfo: TScrollInfo;
  
begin
  oldproc4(msg); // 先处理默认的  if  Msg.Msg=WM_HSCROLL then begin
      if  (Msg.WParamLo= SB_THUMBTRACK) or(Msg.WParamLo=SB_THUMBPOSITION) then
      begin
         ScrollInfo.cbSize := sizeOf(ScrollInfo); // 准备参数
         ScrollInfo.fMask := SIF_ALL;
         GetScrollInfo(dbgrid1.Handle, SB_HORZ, ScrollInfo ); // 取当前的滚动条信息
      
         if ScrollInfo.nPos<Msg.WParamHi then begin
                 SendMessage(dbgrid1.Handle,Msg.Msg,SB_LINERIGHT ,0);
                 ScrollInfo.nPos:=ScrollInfo.nTrackPos;
                 SetScrollPos(dbgrid1.Handle, SB_HORZ,Msg.WParamHi, True);
         end
         else if ScrollInfo.nPos>Msg.WParamHi then  begin
                 
                 SendMessage(dbgrid1.Handle,Msg.Msg,SB_LINELEFT ,0);
                 ScrollInfo.nPos:=ScrollInfo.nTrackPos;
                 SetScrollPos(dbgrid1.Handle, SB_HORZ,Msg.WParamHi, true);
          end
    end;
   end;
  end;