下面是我簡單的實現。。
我創建的是個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);
}
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);
}
這 樣你就可以實現拖拽的功能了。。沒想到原來這麼簡單吧。。