如何实现鼠标拖放文件

操作方法

  • 01

    一.1:取得要拖放的文件名与路径2:取得目标文件名与路径3:在拖动事件中把文件从原目录拷入目标目录4:取得文件图标放入TImageList5:以一种方式显示文件名和图标这里有些难度的是第四步,如何取得图标,现把刚学来的再告诉你(以在TListView显示图标为例):在头文件中加入:#define NO_WIN32_LEAN_AND_MEAN在.cpp中加入:SHFILEINFO FileInfo;THandle ImageListHandle;ImageListHandle = SHGetFileInfo(\"C:\\\\WINDOWS\\\\Start Menu\\\\Programs\\\\Microsoft FrontPage.lnk\", 0, &FileInfo, sizeof(FileInfo),                        SHGFI_SYSICONINDEX ¦ SHGFI_LARGEICON);SendMessage(lstvwVirtualList->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,                ImageListHandle);TListItem * pItem;SHGetFileInfo(\"C:\\\\WINDOWS\\\\Start Menu\\\\Programs\\\\Microsoft FrontPage.lnk\", 0, &FileInfo, sizeof(FileInfo),SHGFI_ICON;SHGFI_LARGEICON);pItem=lstvwVirtualList->Items->Add();pItem->ImageIndex=FileInfo.iIcon;SHGetFileInfo(\"C:\\\\WINDOWS\\\\Start Menu\\\\Programs\\\\DRVSPACE.EXE\", 0, &FileInfo, sizeof(FileInfo),SHGFI_ICON;SHGFI_LARGEICON );pItem=lstvwVirtualList->Items->Add();pItem->ImageIndex=FileInfo.iIcon;这样就可取得2个文件的图标,如果有其他文件可也再加二.首先在FormCreate时调用DragAcceptFiles(this,true)注册你的程序,使得你的程序可以接受文件的DragDrop然后处理WM_DROPFILES消息,获得DropDrag的消息,调用如下函数获得相关的参数::UINT DragQueryFile(    HDROP hDrop,    UINT iFile,    LPTSTR lpszFile,    UINT cch);BOOL DragQueryPoint(    HDROP hDrop,    LPPOINT lppt);最后用下面的函数接受DragDrop的动作VOID DragFinish(    HDROP hDrop);三.在头文件里加上:private:    // User declarations    void __fastcall AcceptFiles(TMessage& Msg);public:        // User declarations    __fastcall TForm1(TComponent* Owner);    BEGIN_MESSAGE_MAP    MESSAGE_HANDLER(WM_DROPFILES,TMessage,AcceptFiles)    END_MESSAGE_MAP(TForm) 一段代码,希望对你有些帮助://---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)    : TForm(Owner){    DragAcceptFiles(this->Handle,true);}//---------------------------------------------------------------------------void __fastcall TForm1::AcceptFiles(TMessage& Msg){    const int m_nMaxFileNameLen=255;    int i,m_nCount;    char m_sFileName[m_nMaxFileNameLen];    m_nCount=DragQueryFile((HANDLE)Msg.WParam,0xffffffff,m_sFileName,m_nMaxFileNameLen);    for(i=0;i<m_nCount;i++)    {        DragQueryFile((HANDLE)Msg.WParam,i,m_sFileName,m_nMaxFileNameLen);        MessageBox(this->Handle,m_sFileName,\"Drop File\",MB_OK);    }    DragFinish((HANDLE)Msg.WParam);}四.在需要拖放的窗体类中加入消息处理映射,如下:BEGIN_MESSAGE_MAP  MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles)END_MESSAGE_MAP (TForm);在相应的cpp文件进入消息处理函数,如下:void __fastcall TForm1::WMDropFiles(TWMDropFiles &message){  UINT filecount = DragQueryFile((HDROP) message.Drop, 0xFFFFFFFF, NULL, 0); //查询拖放的文件数量  for(int n=0;n<=filecount-1;n++)  {  String filename;  filename.SetLength(MAX_PATH);  int length = DragQueryFile ((HDROP) message.Drop,n,filename.c_str (),     MAX_PATH);  filename.SetLength (length);  //在这儿替换你的处理代码  }  DragFinish ((HDROP) message.Drop);}在窗体类的OnCreate事件中加入如下代码,DragAcceptFiles(Handle,true);OK,就这么简单,另外其他窗体类控件同样可以,如ListView等。以上内容均出自上嵌编辑发布、转载需告知。

(0)

相关推荐

  • Windows系统的鼠标拖放操作的技巧

    经常见到一些“高手”或者“高高手”,快捷键运用得令人眼花缭乱。羡慕他们吗?哈,如果你觉得自己记不住那么多快捷组合键,那还有另外的选择,就是用熟、用好鼠标的“拖放”技巧,完全不输给他们哦! Window ...

  • win7使用鼠标拖动文件指针无法移动怎么办?

    win7使用鼠标拖动文件指针无法移动怎么办? 1.打开开始菜单,点"运行",输入"gpedit.msc",确定; 2.弹出"本地组策略编辑器" ...

  • win7使用鼠标拖动文件指针无法移动怎么办?win7鼠标拖动文件指针无法移动的解决方法

    win7系统经常使用鼠标拖动文件,将文件移动到合适的位置,但是一些用户在win7系统使用鼠标拖动文件,指针一直无法移动,该如何解决呢?下面我们的小编和大家分享通过设置本地组策略编辑器来解决问题的方法. ...

  • 怎么在win10系统中解决无法使用鼠标拖动文件的问题

    使用Windows10系统电脑的用户,发现自己无法使用鼠标拖动文件,那么该如何解决这一问题呢?小编就来为大家介绍一下吧.1.打开运行1. 方法1:右击桌面左下角的开始图标,接着点击弹出窗口中的运行选项 ...

  • 如何解决电脑无法拖放文件夹问题

    电脑是现在最常用的工具之一,有些用户遇到了无法拖放文件夹问题,想知道如何解决,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步鼠标右键单击左下角[开始]图标,在弹出的菜单栏中根据下 ...

  • Win8系统鼠标指向文件夹显示出提示信息及含有的内容

    在Windows 8系统中,有很多细小的功能不太为人所知,但又能不小地提高使用效率。比如,我们想要让鼠标指向某个文件夹的时候,能够显示文件夹的相关提示信息以及含有的内容,要怎么做呢? 操作步骤: 1、 ...

  • Win8系统鼠标指向文件夹或者桌面项怎么显示提示信息

    w7系统下载后,用户如果平常比较细心的话你会发现鼠标指针指向某个文件或桌面项目时也会显示信息,如创建时间.文件大小等等相关信息,这给我们管理文件夹变得更加方便人性化,但是在win8系统中该功能也就消失 ...

  • Win10记事本拖放文件打不开怎么办?

    Win10记事本拖放文件打不开怎么办? 在Windows10系统里,在桌面上右键"新建-文本文档"并打开,然后把桌面上记事本的快捷方式拖入到刚打开的记事本里,发现打开后都是乱码.当 ...

  • WIN10如何设置鼠标拖动文件

    WIN10如何设置鼠标拖动文件呢,小编这就教大家如何操作,如下: 首先,你需要将鼠标插入进电脑的usb接口上,确定可以使用后,你需要按住鼠标的左键(一直按住)然后移动鼠标,拖到你想要放置的地方就可以松 ...