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