告诉大家三个API函数一切就OK。。。。
DragAcceptFiles,DragQueryFile和DragFinish.
下面是我简单的实现。。
我创建的是个mfc工程。。界面放了一个listbox。。成员变量:m_list。
在OnInitDialog()中添加: this->DragAcceptFiles(TRUE);
再给这个对话框添加一个WM_DROPFILES消息。。
消息处理函数:
void CdrayFilesDlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
UINT uFileNum=::DragQueryFile(hDropInfo,0xffffffff,NULL,0);
WCHAR strFileName[MAX_PATH];
for (int i=0;i<uFileNum;i++)
{
::DragQueryFileW(hDropInfo,i,strFileName,MAX_PATH);
CString str(strFileName);
m_list.AddString(str+"\r\n");
}
::DragFinish(hDropInfo);
CDialogEx::OnDropFiles(hDropInfo);
}
这 样你就可以实现拖拽的功能了。。没想到原来这么简单吧。。
效果截图: