代码改变世界

拖拽文件实现

2014-12-18 00:28  sylar_liang  阅读(222)  评论(0编辑  收藏  举报

1.OnInitDialog添加:

DragAcceptFiles(TRUE);

2.添加消息WM_DROPFILES

void CDragFilesDlg::OnDropFiles(HDROP hDropInfo)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    UINT nFiles = ::DragQueryFile(hDropInfo,0xFFFFFFFF,NULL,0);
    if(nFiles < 0)
    {
        ::DragFinish(hDropInfo);
        return;
    }

    LPTSTR szFileName;
    for(UINT i=0; i<nFiles; ++i)
    {
        ::DragQueryFile(hDropInfo,i,szFileName,MAX_PATH); // 获取第 i 个文件名
        // 处理文件名
        m_listBox.AddString(szFileName);
    }

    // 结束此次拖拽操作,并释放分配的资源
    ::DragFinish(hDropInfo);


    CDialogEx::OnDropFiles(hDropInfo);
}