CView::OnDropEx

virtual DROPEFFECT OnDropEx( COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point );

返回值:
在point所指定的位置进行的下放动作的效果。它必须是dropEffectList所指定的值之一。在说明部分讨论了下放效果。

参数:
pDataObject指向将要放入下放目标的COleDataObject对象的指针。
dropDefault用户根据当前按键状态选择的下放操作的效果。它可能是DROPEFFECT_NONE。在说明部分讨论了下放效果。
dropList下放源所支持的下放效果的列表。下放效果值可以通过位或操作符(|)组合起来。在说明部分讨论了下放效果。
point相对于视图的客户区的当前鼠标位置。

说明:
当用户在有效的下放目标上方放开一个数据对象时,框架调用这个函数。缺省的实现不做任何操作,并且返回一个空值(-1)以指明框架必须调用OnDrop处理函数。
如果要实现鼠标右键的拖放效果,则应重载这个函数。通常在释放右键的时候,右键拖放操作会显示一个选择菜单。
你重载的OnDropEx必须查询鼠标右键的状态。你可以调用GetKeyState或者从OnDragEnter处理函数中保存鼠标右键的状态。
·如果鼠标右键被按下,你的重载函数必须显示一个弹出菜单,提供下放源支持的下放效果。
·检查dropList以确定下放源所支持的下放效果。在弹出菜单中仅使这些动作有效。
·使用SetMenuDefaultItem以根据dropDefault来设置缺省的动作。
·最后,执行用户通过弹出菜单所选择的动作。
·如果鼠标右键没有按下,你的重载函数应当将它当作标准的下放请求来处理。使用dropDefault中指定的下放效果。另外,你的重载函数业可以返回空值(-1)以指明将由OnDrop来处理这个下放操作。

使用pDataObject来检查COleDataObject的剪贴板数据格式和指定点的下放数据。
下放效果描述了与下放操作相关的动作。参看下面的下放效果列表:
·DROPEFFECT_NONE不允许下放操作。
·DROPEFFECT_COPY将执行拷贝动作。
·DROPEFFECT_MOVE将执行移动动作。
·DROPEFFECT_LINK将建立被下放数据和原始数据的连接。
·DROPEFFECT_SCROLL指明在下放目标中将要或正在发生下放滚动操作。
有关设置缺省菜单命令的更多信息参见Win32文档中的SetMenuDefaultItem以及本书中的CMenu::GetSafeHmenu。

请参阅:
CView::OnDragEnter, CView::OnDragOver, CView::OnDrop, CView::OnDragLeave, COleDropTarget::OnDropEx