Call the DoDragDrop member function to perform a drag-and-drop operation.
DROPEFFECT DoDragDrop( LPCRECT lpItemRect, CPoint ptOffset, BOOL bIncludeLink = FALSE, DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE, LPCRECT lpRectStartDrag = NULL );
- The item's rectangle on screen in client coordinates (pixels).
- The offset from lpItemRect where the mouse position was at the time of the drag.
- Set this to TRUE if the link data should be copied to the Clipboard. Set it to FALSE if your server application does not support links.
- Determines the effects that the drag source will allow in the drag operation.
- Pointer to the rectangle that defines where the drag actually starts. For more information, see the following Remarks section.
A DROPEFFECT value. If it is DROPEFFECT_MOVE, the original data should be removed.
The drag-and-drop operation does not start immediately. It waits until the mouse cursor leaves the rectangle specified by lpRectStartDrag or until a specified number of milliseconds have passed. If lpRectStartDrag is NULL, the size of the rectangle is one pixel.
The delay time is specified by a registry key setting. You can change the delay time by calling CWinApp::WriteProfileString or CWinApp::WriteProfileInt. If you do not specify the delay time, a default value of 200 milliseconds is used. Drag delay time is stored as follows:
- Windows NT Drag delay time is stored in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.
- Windows 3.x Drag delay time is stored in the WIN.INI file, under the [Windows} section.
- Windows 95/98 Drag delay time is stored in a cached version of WIN.INI.
For more information about how drag delay information is stored in either the registry or the .INI file, see WriteProfileString in the Platform SDK.