如何实现拖动文件夹,将里面的项目添加到CListCtrl中

lesgo 2008-01-14 02:14:57
就像一些播放器一样,支持拖放文件夹功能
...全文
189 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
浸在咫尺 2012-08-16
  • 打赏
  • 举报
回复
也学习了一下~~~~多谢啦!!
happymumu 2009-01-13
  • 打赏
  • 举报
回复
good ,THKs a lot!
lesgo 2008-01-15
  • 打赏
  • 举报
回复
OK```搞定```结帖```虽然你们没有说代码``哈哈``其实到百度一搜``就有了```但给了我提示```3Q``
Torch009 2008-01-15
  • 打赏
  • 举报
回复
文件夹下有文件夹吗?可以先遍历一下文件夹下的文件。然后保存起来,之后再添加到listctrl里。
lesgo 2008-01-15
  • 打赏
  • 举报
回复
晕```可以实现拖放功能,但是我想拖放文件夹的时候,把文件夹里面的东西读进里面去,,上面的代码,只实现把文件夹拖进去,并不像一些播放器那样,拖放文件夹是把歌曲名读进列表的
菜牛 2008-01-14
  • 打赏
  • 举报
回复
CWnd::DragAcceptFiles
Call this member function from within a window, using a CWnd pointer, in your application's CWinApp::InitInstance function to indicate that the window accepts dropped files from the Windows File Manager or Windows Explorer.
lesgo 2008-01-14
  • 打赏
  • 举报
回复
void CMP34Dlg::OnDropFiles(HDROP hDropInfo)
{
char *lpszFileName=new char[512];
int nFileCount,i;
CString str2;
nFileCount=::DragQueryFile(hDropInfo,0xFFFFFFFF,NULL,512);
for (i=0;i<nFileCount;i++)
{
UINT nChars=::DragQueryFile(hDropInfo,i,&lpszFileName[0],512);
CString str(&lpszFileName[0],nChars);
str2.Format("%d.",m_listcount);
int nIndex=m_listctrl.GetItemCount();
LV_ITEM lvItem;
lvItem.mask=LVIF_TEXT;
lvItem.iItem=nIndex;
lvItem.iSubItem=0;
lvItem.pszText="";
m_listctrl.InsertItem(&lvItem);
m_listctrl.SetItemText(nIndex,1,str);
m_listctrl.SetItemText(nIndex,0,str2);
m_listcount++;
}
::DragFinish (hDropInfo);
i=0;
delete []lpszFileName;
}//实现不了,我绑的时候,调试时,也不响应这个函数??
junheng 2008-01-14
  • 打赏
  • 举报
回复
嗯,楼上大哥有经验,我倒没有用过这个消息,呵呵。
菜牛 2008-01-14
  • 打赏
  • 举报
回复
重载CWnd::OnDropFiles
junheng 2008-01-14
  • 打赏
  • 举报
回复
先定义一个CArray对象。当鼠标拖动一个文件或文件夹并且放在这个控件时,响应鼠标事件:如果是文件,直接将其路径全名写入这个CArray对象,并且将其文件名添加到这个列表视图控件中;如果是文件夹,则遍历这个目录下的所有文件,将这些文件的路径全名写入CArray对象,将其文件名添加入列表视控件。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧