Here is a simple method to have a Drag and Drop feature in your dialog based applications. To provide Drag and Drop we have a Windows Message Handler called
WM_DROPFILES. Handle this message through the
ON_MESSAGE message map to capture the dropped files.
ON_MESSAGE(WM_DROPFILES,OnDropFiles)// Message Handler for Drang and Drop
Now it is time to handle the
WM_DROPFILES messages through a user defined method. The function prototype should be like this:
LRESULT OnDropFiles(WPARAM wParam,LPARAM lParam);
Finally we have a function to capture the drop events.
wParam is a handle to the
HDROP structure describing the dropped files.
To get info about the dropped file, i.e., the file name used:
DragQueryFile(hDrop, // Struture Identifier
-1, // -1 to Drop more than one file or ( integer 0 to max )
// to drop selected No of files
szDroppedFile,// Droped File Name
MAX_PATH); // Max char
So now we have done all possible coding in our dialog based application to handle the Drag & Drop feature. But still it is handicapped.
Handling the Drop event is not enough to ensure the Drag & Drop feature. We need to register our window to accept the dropped file using:
DragAcceptFiles(TRUE) // To Accept Dropped file Set this TRUE
Good... That's all, and we have done well!
I added one more feature in this sample, i.e., moving our dialog by clicking on anywhere on the window. This can be done by posting the
HTCAPTION handle this statement in