加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi : 使用ApplicationEvents来拦截窗体消息,阻止WebBrowser

发布时间:2020-12-15 09:57:29 所属栏目:大数据 来源:网络整理
导读:Delphi?:?使用ApplicationEvents来拦截窗体消息,阻止WebBrowser右键菜单 (2012-10-25 19:38:35) 标签: ? it 分类: ?软件_Software ? ? ? ?项目需要一些全屏展示的web页面,结果碰到一个问题,当窗体上的webbrowse控件打开了网页之后,窗体就不响应键盘消

Delphi?:?使用ApplicationEvents来拦截窗体消息,阻止WebBrowser右键菜单

(2012-10-25 19:38:35)
标签:?

it

分类:?软件_Software

????项目需要一些全屏展示的web页面,结果碰到一个问题,当窗体上的webbrowse控件打开了网页之后,窗体就不响应键盘消息了~~~~郁闷了会儿,过后才研究出来用ApplicationEvents这个控件就可以实现~~~要么的话,就只有HOOK窗口消息了~~


以下是OnMessage事件,用来阻止WebBrowser的右键菜单:
procedure TfrmSearch.ApplicationEvents1Message(var Msg: tagMSG;
??var Handled: Boolean);
begin
??//如果是Webbrowser,则不许使用右键菜单
??if IsChild(WebBrowser1.Handle,Msg.Hwnd)?and ((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message=WM_RBUTTONUP)) then
??begin
????Handled:=True;
??end;
end;
?
当焦点在WebBrowser控件中时,窗体是不会响应键盘消息的,可以用以下方法来处理,比如中按ESC运行命令~
//用ApplicationEvents控件,拦截ESC键按下的消息!
procedure TForm1.ApplicationEvents1Message(var Msg:?tagMSG;
??var Handled: Boolean);
begin
??if (Msg.message = WM_KEYDOWN) AND (Msg.wParam=VK_ESCAPE)?then
??begin
????if IsChild(Webbrowser1.Handle,Msg.hwnd) then
????showmessage('在这里做你想做的');
??end else;
end;


应用的地方,还有,DCube与DBgrideh 在使用时,用鼠标滚动来代替一条一条滚动。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读