這個是我昨晚在做某工程的時候寫的,然后就共享出來,要實現文件拖曳首先要讓窗口支持文件拖曳功能,首先要設置窗口的accept files屬性為真,或者在初始化的時候加入DragAcceptFiles函數使得窗口支持文件拖曳,這時候你就可以試試把文件拖曳過去會發現鼠標不在是之前那個停止的圖標,這時候我們要添加拖曳處理消息為窗口添加OnDropFiles消息,然后鍵入下面代碼
void CXXXXXDlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
WCHAR wcStr[MAX_PATH];
UINT nFileNum = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);//DragQueryFile第二參數為為 0xFFFFFFFF的時候返回拖曳的文件個數
DragQueryFile(hDropInfo,nFileNum-1,wcStr,MAX_PATH);//獲得拖曳的最后一個文件的文件名
DragFinish(hDropInfo); //用完要記得釋放掉hDropInfo
CDialog::OnDropFiles(hDropInfo);
}
//如上是獲得拖曳的最后一個文件的文件名存入wcStr里面,當然你也可以用循環獲得所有拖曳的文件名,接下來要做什么事情就靠你自己了