文件拖拽的问题
我知道如何将文件拖拽到一个dialog中。
但是现在项目的需求不仅仅是能把文件拖拽到程序中。还需要能把程序中list列表中显示的文件拖拽出来放到任意的系统中的某个目录下。
求解,应该怎么最? VC?MFC?拖拽
[解决办法]
对话框的Extened Styles中Accept Files选上。然后添加OnDropFiles事件,及相应的函数。
void CMyDlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: Add your message handler code here and/or call default
int iCount;
char pcFilePath[MAX_PATH];
int iPathLen;
int i;
iCount = DragQueryFile(hDropInfo, 0xffffffff, NULL, 0);
if(iCount>1) //限定一个,可以不做限定。
{
AfxMessageBox("一次只能检查一个工程哈!");
return;
}
iPathLen = DragQueryFile(hDropInfo, 0, pcFilePath, MAX_PATH);
for(i=iPathLen; i>0; i--)
{
if(pcFilePath[i]=='.')
{
break;
}
}
if(0 == memicmp(&pcFilePath[i], ".XXX", strlen(".kop")) ) //指定扩展名的。
{
m_strPath=pcFilePath; //文件名显示在编辑框中,这里改成列表框 也是可以的。
UpdateData(FALSE);
}
else
{
AfxMessageBox("请确认!");
return;
}
CDialog::OnDropFiles(hDropInfo);
}