现在的位置: 首页 > 综合 > 正文

MFC, WTL中实现文件拖动功能

2013年06月28日 ⁄ 综合 ⁄ 共 691字 ⁄ 字号 评论关闭

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
        {
            //拖来的为文件
            ......
        }
    }

抱歉!评论已关闭.