MFC, WTL中实现文件拖动功能:
1 新建一对话框工程。
2 在对话框的属性中将“Accept Files”一项勾选上。
3 添加消息,
在MFC中添加 ,ON_MESSAGE(WM_DROPFILES, OnDropFiles)
在WTL中添加,MSG_WM_DROPFILES(OnDropFiles)
4 写OnDropFiles(HDROP hDropInfo)方法
void OnDropFiles(HDROP hDropInfo)
{
unsigned int cFile = 0, i = 0;
CHAR szFileNname[MAX_PATH] = {'/0'};
cFile = ::DragQueryFile( hDropInfo, 0xFFFFFFFF, NULL, MAX_PATH );
for(i = 0; i < cFile; i++)
{
DWORD fileAttrib = 0x0;
::DragQueryFile( hDropInfo, i, szFileNname, MAX_PATH );
bCanExit = FALSE;
fileAttrib = GetFileAttributes(szFileNname);
if (0x10 == (fileAttrib & FILE_ATTRIBUTE_DIRECTORY))
{
//拖来的为文件夹
......
}
else
{
//拖来的为文件
......
}
}
}
1 新建一对话框工程。
2 在对话框的属性中将“Accept Files”一项勾选上。
3 添加消息,
在MFC中添加 ,ON_MESSAGE(WM_DROPFILES, OnDropFiles)
在WTL中添加,MSG_WM_DROPFILES(OnDropFiles)
4 写OnDropFiles(HDROP hDropInfo)方法
void OnDropFiles(HDROP hDropInfo)
{
unsigned int cFile = 0, i = 0;
CHAR szFileNname[MAX_PATH] = {'/0'};
cFile = ::DragQueryFile( hDropInfo, 0xFFFFFFFF, NULL, MAX_PATH );
for(i = 0; i < cFile; i++)
{
DWORD fileAttrib = 0x0;
::DragQueryFile( hDropInfo, i, szFileNname, MAX_PATH );
bCanExit = FALSE;
fileAttrib = GetFileAttributes(szFileNname);
if (0x10 == (fileAttrib & FILE_ATTRIBUTE_DIRECTORY))
{
//拖来的为文件夹
......
}
else
{
//拖来的为文件
......
}
}
}