分享

完美屏蔽掉WebBrowser里的鼠标左右键

 独孤求财 2012-04-26
完美屏蔽掉WebBrowser里的鼠标左右键
2009年11月22日 星期日 9:42

由于一些特殊情况下,我们需要屏蔽掉WebBrowser里的鼠标左右键;用了过去很多方法都不行,搞一天,总算完美解决:

首先放一个ApplicationEvents控件,然后在ApplicationEvents的事件OnMessage中写入如下代码: (ApplicationEvents控件在delphi中的additional选项卡上找,即附加选项卡)

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
   var Handled: Boolean);
begin
 if Msg.message = WM_RBUTTONDOWN then
 begin
 Handled := True;
 end;
end;


这样我们就已经屏蔽掉鼠标右键了,而左键怎么办?我们看上面代码中WM_RBUTTONDOWN,很容易就可以发现左键就是WM_LBUTTONDOWN;那么现在代码不够完美,为什么?因为使用以上代码后,不仅仅是WebBrowser的左右键被禁止、屏蔽了,而是整个FROM里的控件都是这样,例如Edit等;下面给出完整代码:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
   var Handled: Boolean);
begin
if IsChild(WebBrowser1.Handle, Msg.Hwnd) and ((Msg.Message = WM_RBUTTONDOWN)
         or (Msg.Message = WM_RBUTTONUP) or (Msg.Message = WM_LBUTTONDOWN)
             or (Msg.Message = WM_LBUTTONUP)) then
   begin
       Handled:=True;
   end;
end;


加入了IsChild(WebBrowser1.Handle, Msg.Hwnd) 来判断,这样这个屏蔽鼠标左右键的效果就只在WebBrowser1中执行了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多