在 MFC 中,COleDataSource 类确实有一个名为 DoDragDrop 的公共方法。这个方法用于启动拖放操作。DoDragDrop 方法负责开始拖动并在拖放操作完成后返回结果。

以下是 COleDataSource::DoDragDrop 方法的基本语法:
DROPEFFECT DoDragDrop(
   DWORD dwOKEffects = DROPEFFECT_COPY|DROPEFFECT_MOVE|DROPEFFECT_LINK,
   LPCRECT lpRectStartDrag = NULL,
   COleDropSource* pDropSource = NULL
);

该方法采用三个参数:

1. DWORD dwOKEffects:指定在拖放操作中允许的效果。可以是 DROPEFFECT_COPY、DROPEFFECT_MOVE 和/或 DROPEFFECT_LINK 的组合。

2. LPCRECT lpRectStartDrag:指定拖动操作的起始矩形区域。如果为 NULL,则使用整个拖动源的区域。

3. COleDropSource* pDropSource:指定 COleDropSource 类型的对象,该对象负责处理拖放源事件。

DoDragDrop 方法返回一个 DROPEFFECT 枚举值,表示最终的拖放效果。可能的值包括 DROPEFFECT_COPY、DROPEFFECT_MOVE、DROPEFFECT_LINK 或 DROPEFFECT_NONE。

这个方法通常在响应鼠标左键按下事件时被调用,以启动一个拖放操作。在拖放操作期间,COleDataSource 负责提供拖动的数据。


转载请注明出处:http://www.zyzy.cn/article/detail/21325/MFC/COleDataSource