TWebBrowser控件能否用程序控制页面移动和翻页(200分)

  • 主题发起人 主题发起人 wanghaibing
  • 开始时间 开始时间
W

wanghaibing

Unregistered / Unconfirmed
GUEST, unregistred user!
TWebBrowser控件能否用程序控制页面移动和翻页,我不管是模拟键盘
还是发送消息,程序都不能控制

有关饭碗问题,各位大虾帮忙,小弟在此谢了先!
 
可用SendMessage函数发给它一个按下PageUp或PageDown的消息即可。
 
我想知道D4下如何操作?:)
 
我试过键盘模拟和发送消息的办法,可结果不是没有反应,就是程序出莫名其妙的错误,请大虾细讲
 
以下是个让Memo翻页的程序,你可参考一下。


procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_F8 then
SendMessage(Memo1.Handle, { HWND of the Memo Control }
WM_VSCROLL, { Windows Message }
SB_PAGEDOWN, { Scroll Command }
0) { Not Used }
else if Key = VK_F7 then
SendMessage(Memo1.Handle, { HWND of the Memo Control }
WM_VSCROLL, { Windows Message }
SB_PAGEUP, { Scroll Command }
0); { Not Used }
end;


 
需要重载WB的消息处理过程,可以看到在D5中,WB没有响应键盘和鼠标的事件.
 
这个问题还未解决?
我也试了多次,还是不行。
这东西是走的OLE,就是有点个别。

你不防自已编OLE过程,这样就你得到IE的句柄,也可以将消息发给它。

procedure TForm1.Button1Click(Sender: TObject);
var
V:Variant;
begin
V:=CreateOleObject('InternetExplorer.Application');
V.Visible:=True;
V.navigate('地址');
SendMessage(V.Handle,WM_VSCROLL,SB_PAGEDOWN,0);
V.Stop;
V.quit;

// HTML Document
end;
 
把WebBrower放在Scorllbox里面,把WebBrower的高度变得很高,一般得页面能在WEBBROWSER里边一页显示,而不产生滚动条,就可以直接控制SCROLLBOX得翻页功能,间接处理WEBBROWSER得翻页!
但键盘就不能直接对WEBBROWSER处理滚动和左右上下移动了,最好再加一个钩子函数,截取键盘消息,来处理页面得显示!
 
多人接受答案了。
 
后退
顶部