1. 首先先将您的CDialog设置为Accept files,通过代码或者选项点击都可以实现
2. 添加函数声明和消息映射
//添加事件声明(尽量写在"AFX_MSG"宏外面.我记得写在里面会出现错误)
afx_msg void OnDropFiles( HDROP hDropInfo );
//添加消息映射(尽量写在"AFX_MSG_MAP"宏外面.我记得写在里面会出现错误)
ON_WM_DROPFILES()
3. 下一步就是函数的实现
//实现(WINDOWS系统是支持多个文件同时拖放的)
void CMyDlg::OnDropFiles( HDROP hDropInfo )
{
UINT cFiles = ::DragQueryFile( hDropInfo, 0xffffffff, 0, 0); //取得文件数
CString szText;
char szFile[MAX_PATH];
for( UINT count = 0; count < cFiles; count++ )
{
if(cFiles>0)
{
::DragQueryFile(hDropInfo, count, szFile, sizeof(szFile));
szText += szFile; //绝对路径+文件名存于szFile
szText += "/r/n"; //取所有的文件到szText中,一行一个
//break; //只取得第一个文件
}
}
//相应操作
}