首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

WebBrowser怎么实现鼠标拖动功能

2012-12-31 
WebBrowser如何实现鼠标拖动功能?用WebBrowser打开网页后,打算按住鼠标拖动网页内容,实现上下左右移动,请

WebBrowser如何实现鼠标拖动功能?
用WebBrowser打开网页后,打算按住鼠标拖动网页内容,实现上下左右移动,请问该如何实现?设置DrapMode为dmAutomatic并无反应。
[解决办法]
var
  r: TRect;

procedure TForm1.FormCreate(Sender: TObject);
begin
  w.navigate('http://www.baidu.com');
  r:=w.BoundsRect;
  dec(r.Right,16);
  dec(r.Bottom,16);
  r.topleft:= clienttoscreen(r.TopLeft);
  r.BottomRight:=clienttoscreen(r.BottomRight);
  application.OnMessage := m;
end;

var
  p: TPoint;

procedure TForm1.m(var Msg: TMsg; var Handled: Boolean);
begin
  if not PtInRect(r, mouse.CursorPos) then Exit;

  case Msg.message of
    WM_LBUTTONDOWN:
      begin
        Tag := 1;
        p := Mouse.CursorPos;
        Handled := True;
      end;
    WM_MOUSEMOVE:
      begin
        if Tag = 1 then
        begin
          with Mouse.CursorPos do
            w.OleObject.document.parentWindow.scrollBy(p.X-x,p.Y-y);//网页内容滚动
          p := Mouse.CursorPos;
          Handled := True;
        end
      end;
    WM_LBUTTONUP:
    begin
      Tag := 0;
      Handled := True
    end
 end
end;

热点排行