Welcome

首页 / 软件开发 / C++ / 如何实现鼠标拖放文件

如何实现鼠标拖放文件2008-01-05一.

1:取得要拖放的文件名与路径。

2:取得目标文件名与路径。

3:在拖动事件中把文件从原目录拷入目标目录。

4:取得文件图标放入TImageList。

5:以一种方式显示文件名和图标。

这里有些难度的是第四步,如何取得图标,现把刚学来的再告诉你(以在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个文件的图标,如果有其他文件可也再加。