文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言Internet Explorer 编程简述(十一)完美的Inplace Drag & Drop——“超级拖放”
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·DENX U-Boot及Linux使用手册
·EZ-USB 68013A开发指南
·图象处理中的边缘检测------canny算子
·Visual C++ ADO数据库编程入门
·利用 wordXP 实现自动排班
·UDT协议-基于UDP的可靠数据传输协议
·XPCOM--LINUX下的组件开发技术
·MyEclipse JSF 快速入门中文版(上)
·samba和openldap结合实战
·AIX 5L 学习大纲/简易教程(1)(未经许可,请勿COPY)
·Microsoft Windows XP Embedded 开发工具概述
·eMbedded Visual C++开发入门
·在VC6中创建wxWidgets项目[附图]
·数值计算程序大放送-线性代数方程组
·列表视图控件
·visual studio 2005 简体中文团队开发版 SQL server 2005简体中文版下载
·Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件
·汇编语言工具下载
·多文档界面(MDI)

Internet Explorer 编程简述(十一)完美的Inplace Drag & Drop——“超级拖放”

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]


 
STDMETHODIMP CHtmlControlSite::XDocHostUIHandler::GetDropTarget(
LPDROPTARGET pDropTarget, LPDROPTARGET* ppDropTarget)
{
METHOD_PROLOGUE_EX_(CHtmlControlSite, DocHostUIHandler)
*ppDropTarget = g_pDropTarget;//将自定义的实现告知MSHTML引擎
return S_OK;
}
 
其中g_pDropTarget指向某个全局的IDropTarget接口的实现,我们假定为CIEDropTarget,CIEDropTarget实现了IDropTarget的几个成员函数DragEnter、DragOver、DragLeave和Drop。在DragEnter中可以决定是否接受一个Drop以及如果接受这个Drop的话该提供怎样的鼠标拖拽反馈,在持续触发的DragOver中同样可以设定鼠标拖拽反馈,从而实现在拖放不同的对象(文字、链接、图像等)时提供不同的拖拽视觉效果,实现相当简单,此处不再赘述。
但上面的实现存在一些问题。首先是选中的文字在页面内与输入框之间交互的拖放没有了。这是自然的,既然我们用自定义的DropTarget替换掉了IE的缺省实现,那这种交互的拖放理应由我们自己实现。难处并非在于不能实现,而是在于实现起来比较麻烦——光是得到鼠标下的HTML Element就够我们烦了;当输入框中有文字的时候,光标还应该随着鼠标的移动而移动——所以这个费力还不一定讨好的功能似乎没有哪个浏览器去做。其次,作为输入框文字拖放的衍生物,拖拽滚动没有了。当鼠标向某个方向拖拽时,网页应该随着将不可见的部分滚动出来,比如某个输入框,让我们有机会将文字拖拽过去。这个Feature的实现并不困难,不过一来是被忽略了(注意到拖拽滚动的人并不多),二来主要Feature都没有实现,这个滚动也意义不大了。
 
3、打入MSHTML内部
既然从GetDropTarget提供外部实现难以得到与输入框的交互式拖放,那就换个角度来考虑问题,让我们打入MSHTML的内部。
着手点是IHTMLDocumentX接口——操纵IE的DOM的法宝。我们注意到IHTMLDocument2有个ondragstart事件,进而想到应该也有诸如ondragenter、ondragover、ondrop之类的事件(事实上也是有的),如果响应这些事件,处理同输入框的交互式拖放应该就能够解决。因为这些拖放在MSHTML的缺省DropTarget实现中发生,因而当鼠标拖拽到某个输入框上时,肯定会触发一个ondragover事件,而在IHTMLEventObj的辅助下我们能轻松得到相关的HTML Element,其它的操作就容易进行了。再细心一点,我们还发现IHTMLEventObj2接口有个dataTransfer属性——可以得到一个IHTMLDataTransfer的指针,而IHTMLDataTransfer接口正是浏览器内部用于数据交换的重要手段之一(看看它的属性就知道会很有用了):
IHTMLDataTransfer Members
clearData——Removes one or more data formats from the clipboard through dataTransfer or clipboardData object.

上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页 




上一篇:我对PMP考试的一些体会

下一篇:关于N皇后问题高效试探回溯算法的分析

Internet Explorer 编程简述(十一)完美的Inplace Drag & Drop——“超级拖放” 相关文章:
·WindowsXP超级技巧
·Windows XP的20个超级实用技巧大全
·红色警戒2:尤里的复仇 超级武器人渣法 - 游戏秘籍
·socket编程原理
·《三国群英传5》超级秘籍大全 - 游戏秘籍
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
·Windows黑客编程基础
·TCP/IP编程实现远程文件传输
·《超级机器人大战OG2》极限攻略(gba) - 超级机器人大战攻略秘籍 - 超级机器人大战
·如何给XP设置超级管理员密码
Internet Explorer 编程简述(十一)完美的Inplace Drag & Drop——“超级拖放” 相关软件:
·Kaspersky(卡巴斯基) Internet Security 安全套装 V6.0.2.621 中文版
·U盘超级工具大全
·洪恩轻松教你学电脑_internet学习
·红色警戒2-血腥的战场 超级变态版
·暗黑破坏神 2 1.10超级修改器暗黑通v1.01繁体版
·卫星定位地图GoogleEarth 看全球每个平方角超级高清定位
·超级自动注册申请王 V3.0
·QQ显IP 显隐身超级版 2款不同功能最新QQ版本 友情下载
·王牌超级工具箱V13.5
·《东京番外地》超级格斗

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot