COleServerItem::DoDragDrop

DROPEFFECT DoDragDrop( LPCRECT lpItemRect,
                       CPoint ptOffset,
                       BOOL bIncludeLink = FALSE,
                       DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
                       LPCRECT lpRectStartDrag = NULL
                     );

返回值:
是一个DROPEFFECT枚举值。如果它是DROPEFFECT_MOVE,则原始数据将被删除。

参数:
lpItemRect指定项在屏幕上的矩形,相对于客户区,用像素表示。
ptOffset拖动时鼠标位置距离lpItemRect的偏移。
bIncludeLink如果链接数据将被拷贝到剪贴板上,则将此参数设置为TRUE。如果应用程序不支持链接,则将此参数设置为FALSE。
dwEffects确定数据源在拖动操作中允许的效果(Copy,Move和Link的组合)。
lpRectStartDrag指向调用拖动实际开始处的矩形的指针。更多的信息,请参见下面的说明部分。

说明:
此成员函数用来执行一次拖放操作。拖放操作并不是立即开始。直到鼠标光标离开由lpRectStartDrag指定的矩形后,或者直到已经过去了指定的毫秒数后,拖放才开始。如果lpRectStartDrag为NULL,则使用缺省拖动矩形,这样拖动在鼠标光标至少移动一个像素时才开始。
延迟时间是由一个注册表键设置来确定的。你可以通过调用CWinApp::WriteProfileString或者CWinApp::WriteProfileInt来改变延迟时间。如果你没有指定延迟时间,则使用缺省的200毫秒延迟设置。拖动延迟时间是按下面的方式保存的:
·Windows NT拖动延迟时间被保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay。
·Windows 3.x拖动延迟时间被保存在[Windows]部分下的WIN.INI文件中。
·Windows 95拖动延迟时间被保存在WIN.INI的缓冲版本中。
如果要获取更多有关拖动延迟时间是如何保存在注册表或.INI文件中的信息,请参见Platform SDK中的::WriteProfileString。

请参阅:
COleDataSource::DoDragDrop, COleServerItem::CopyToClipboard