|
dropEffect——Sets or retrieves the type of drag-and-drop operation and the type of cursor to display.
effectAllowed——Sets or retrieves, on the source element, which data transfer operations are allowed for the object.
getData——Retrieves the data in the specified format from the clipboard through the dataTransfer or clipboardData objects.
setData——Assigns data in a specified format to the dataTransfer or clipboardData object.
更进一步,从IHTMLDataTransfer接口还可以访问到IDataObject接口,在进行Ole拖放时,数据就是通过IDataObject接口来传递的。具体用法稍后讨论。
4、打入MSHTML内部——思路
提供鼠标反馈效果与实现GetDropTarget的方法类似,有了IHTMLDataTransfer接口,便可在ondragstart及ondragover事件触发时通过dropEffect属性设置拖拽的效果(可根据需要自行设定,不设置的话使用默认的效果)。再者,“拖”和“放”都在MSHTML的缺省实现中发生,我们从IHTMLEventObj的SrcElement即可得知鼠标所位置的HTML Element是否是输入框。
5、打入MSHTML内部——实现
要接收到ondragstart之类的事件,可以采用《Internet Explorer 编程简述(十)响应来自HTML Element的事件通知——几个好用的类》中提到的CHtmlObj类和CHtmlElements类,并在适当的地方连接到Document,示例代码如下所示:
HRESULT CHtmlDocument2::OnInvoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags,
DISPPARAMS * pdispparams, VARIANT * pvarResult,EXCEPINFO * pexcepinfo,
UINT * puArgErr)
{
......
//如果只是要设置鼠标拖拽效果的话,这个事件可以不处理
case DISPID_HTMLELEMENTEVENTS_ONDRAGSTART :
上一篇:我对PMP考试的一些体会
下一篇:关于N皇后问题高效试探回溯算法的分析
|