CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

100分,关于文件拖动的问题。

楼主surnde3()2005-06-03 11:33:41 在 VC/MFC / 界面 提问

我写了一个zip文件的程序,当在我程序里拖动文件到其他目录里的时候。  
  需要怎么样处理才能象   WinRar   那样,当鼠标抬起后才解压缩文件和复制到目标文件甲。  
   
  下面是我的程序   只能先解压缩选择的文件后在拖动。(不然   Explorer就会出现   源文件不存在的提示)  
   
    //首先确定有多少文件被选择  
  UINT   s=m_listdlg->m_List.GetSelectedCount();  
   
  UINT   uBufferSize   =10000;//   (sizeof(DROPFILES))   *   (   s+   1);  
        HGLOBAL   hMemData   =   GlobalAlloc(   GPTR,uBufferSize);  
   
  DROPFILES   *lpDropFiles   =   (LPDROPFILES)GlobalLock(hMemData);   //锁定之,并设置相关成员  
   
  lpDropFiles->pFiles   =   sizeof(DROPFILES);  
   
  #ifdef   _UNICODE  
   
                lpDropFiles->fWide   =   TRUE;  
   
  #else  
   
                lpDropFiles->fWide   =   FALSE;  
   
  #endif  
   
  //下面的代码是解压缩选择的文件   和   添加需要拖动的文件  
   
        POSITION   i1=m_listdlg->m_List.GetFirstSelectedItemPosition();  
   
  m_DownFilePath=m_Work;  
  m_DownFileName=0;  
  m_UpFiles.RemoveAll();  
  m_UpFilesLen=0;  
  m_mask=0;  
  m_CancelUpFile=0;  
   
  char   *pszStart   =   (char*)((LPBYTE)lpDropFiles   +   sizeof(DROPFILES));  
   
                 
   
   
  while   (i1!=NULL)  
  {  
   
  int   yy=0;  
  yy=m_listdlg->m_List.GetNextSelectedItem(i1);  
   
  CString   fn;  
  fn=m_listdlg->m_List.GetItemText(yy,0);  
   
  CString   pp;  
  pp=GetPath();  
  pp+="\\";  
  pp+=fn;  
  CString   fi1;  
  fi1=m_Work;  
  fi1+="\\";  
  fi1+=fn;  
  lstrcpy(   pszStart,fi1);  
  pszStart   =   strchr(pszStart,'\0')   +   1;   //下次的起始位置是上一次结尾+1  
  m_UpFiles.Add(pp);  
  }  
   
   
  GlobalUnlock(   hMemData   );  
   
  DownFile("",0,0,0,0);   //我自己解压缩文件的代码  
   
   
   
  COlefile   source;  
  source.Empty();  
          source.CacheGlobalData(CF_HDROP,   hMemData);  
  //source.DelayRenderData(CF_HDROP);  
  m_bDraging   =   TRUE; //开始拖动  
  source.DoDragDrop(   DROPEFFECT_COPY   );  
  m_bDraging   =   FALSE; //完成拖动  
   
   
   
  请大家帮我解决一下,最好有代码(给全分)。  
   
  如果在用户拖动完成后在准备源文件(解压缩)。   如果先准备源文件,也用户取消拖动了,准备的文件就白白浪费了时间与资源。 问题点数:0、回复次数:4Top

1 楼vcleaner(我没当大哥很久了.......)回复于 2005-06-03 13:04:43 得分 0

http://www.codeproject.com/miscctrl/rdragdropfiles.aspTop

2 楼vcleaner(我没当大哥很久了.......)回复于 2005-06-03 13:06:28 得分 0

http://www.codeproject.com/dialog/JibDragDrop.aspTop

3 楼wuchi(风云)回复于 2005-06-03 15:53:12 得分 0

mousedown,mousemove,mouseupTop

4 楼surnde3()回复于 2005-06-03 21:21:32 得分 0

楼上两位好象没有明白我的意思吧!我不是问怎么拖动文件,我是问如何在拖动结束后再提供数据。Top

相关问题

  • 文件拖动问题请教!急!!
  • 怎么实现打开拖动文件??
  • 菜鸟求助,有关拖动文件的问题
  • 程序获得系统拖动文件总数时的问题。
  • 高分!!如何实现文件夹的拖动拷贝???
  • 如何用拖动技术来捕获文件名
  • 关于<iframe>中的文件太大拖动问题
  • 怎么实现文件的拖动打开.?
  • 从ListView拖动文件到windows浏览器
  • 怎样判断鼠标是否拖动一个文件到一个控件上!!

关键词

  • 文件
  • 选择
  • 拖动
  • lpdropfiles
  • listdlg
  • dropfiles
  • 源文件
  • 解压缩
  • pp
  • fn

得分解答快速导航

  • 帖主:surnde3

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo