读书人

WebBrowser怎么实现鼠标拖动功能

发布时间: 2012-12-31 11:57:52 作者: rapoo

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;

读书人网 >.NET

热点推荐