C# 继承.Net中提供的WebBrowser 2.0控件以实现IE的超级拖放

本文介绍了如何通过继承.NET的WebBrowser控件并实现IDocHostUIHandler和IDropTarget接口,来实现类似傲游浏览器的超级拖放功能。在.NET环境中,利用提供的DLL,只需在WebBrowser子类中实现接口方法,注册拖放对象,然后处理DragEnter、DragOver、DragLeave和Drop事件,即可自定义拖放行为。同时,文章指出还需实现IWebBrowser2接口以正确注册控件作为DropTarget。
摘要由CSDN通过智能技术生成

看到傲游中提供的超级拖放很是方便,但是IE中却没有提供,但是现在IE 8 用着很好,于是就琢磨着自能否让IE 也支持此功能呢,Google一下很多都是VC++的资料,而且没有完整的代码,但是有一篇的文章给出了完整的思路,这里很感谢此作者,原文链接:http://blog.csdn.net/drong/archive/2007/03/05/1520698.aspx

通过该作者的思路对控件进行了改写。当然本文只是思路的一种,写出来之后必须要自写浏览并使用生成的控件才能使用超级拖放功能,当然也可以写IE 插件来直接在IE 上实现,网上有已经写好的,但是我们编程能自己写会学到更多。

 

简介:

      要实现超级拖放功能,就必须要实现IDocHostUIHandler和IDropTarget这两个接口(详细见MSDN),当Mshtml在需要的时候就会调用IDocHostUIHandler接口中的GetDropTarget方法,其中该方法中有两个参数,一个是传入参数pDropTarget,是默认的拖放操作对象,而输出参数ppDropTarget使我们可以注册我们自己希望来处理拖放的操作对象,并且保存原有pDropTarget对象,当用户往文本编辑框中拖放时就可以调用IE原有的默认操作,而不用我们去实现,实际上实现起来也相当的麻烦。IDocHostUIHandler接口主要是注册当然的控件本身来处理拖放操作,而IDropTarget接口则会在发生DragEnter、DragOver、Drag、DragLeave被调用,在这里我们就可以对事件进行处理,

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值