DragAcceptFiles 拖放文件到多文档框架上

转载 2013年12月04日 19:44:19
以多文档为例:
1.在应用程序类App的InitInstance()函数后面,添加以下代码:
1
m_pMainWnd->DragAcceptFiles(TRUE); 
2.响应主框架类CMainFrame的WM_DROPFILES消息,添加如下代码:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
void CMainFrame::OnDropFiles(HDROP hDropInfo) 

    SetActiveWindow();      // activate us first ! 
    UINT nFiles = ::DragQueryFile(hDropInfo, (UINT)-1, NULL, 0); 
 
    CWinApp* pApp = AfxGetApp(); 
    ASSERT(pApp != NULL); 
    for (UINT iFile = 0; iFile < nFiles; iFile++) 
    { 
        TCHAR szFileName[_MAX_PATH]; 
        ::DragQueryFile(hDropInfo, iFile, szFileName, _MAX_PATH); 
        pApp->OpenDocumentFile(szFileName); 
    } 
    ::DragFinish(hDropInfo); 
3.要对某些后缀名进行过滤,则修改如下:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void CMainFrame::OnDropFiles(HDROP hDropInfo) 

    SetActiveWindow();      // activate us first ! 
    UINT nFiles = ::DragQueryFile(hDropInfo, (UINT)-1, NULL, 0); 
 
    CWinApp* pApp = AfxGetApp(); 
    ASSERT(pApp != NULL); 
    for (UINT iFile = 0; iFile < nFiles; iFile++) 
    { 
        TCHAR szFileName[_MAX_PATH]; 
        ::DragQueryFile(hDropInfo, iFile, szFileName, _MAX_PATH); 
        LPTSTR pszExtension = PathFindExtension(szFileName); 
        if (pszExtension != NULL && *pszExtension == _T('.')) 
        { 
            _tcslwr_s(pszExtension, _tcslen(pszExtension) + 1); 
            if (0 == _tcscmp(pszExtension, _T(".exe")) 
                || 0 == _tcscmp(pszExtension, _T(".chm"))) 
            { 
                AfxMessageBox(_T("不支持的文件类型!")); 
            } 
            else 
                pApp->OpenDocumentFile(szFileName); 
        }         
    } 
    ::DragFinish(hDropInfo); 


转自:http://blog.csdn.net/akof1314/article/details/7206082

相关文章推荐

易语言 文件拖放 案例源码

  • 2015年12月31日 17:10
  • 4KB
  • 下载

Android开发之Drag&Drop框架实现拖放手势

Android3.0提供了drag/drop框架,利用此框架可以实现使用拖放手势将一个view拖放到当前布局中的另外一个view中。本文将介绍如何使用拖放框架。 一、实现拖放的步骤   ...

用鼠标实现文件拖放.rar

  • 2010年07月01日 13:39
  • 36KB
  • 下载

asp.net 图形文件的拖放操作

  • 2009年11月17日 15:06
  • 8KB
  • 下载

解决Win7系统下以管理员身份运行的程序接收不到拖放文件消息[WM_DROPFILES]问题的方法

大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开。最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP、Windows Serv...

Cocoa文件拖放

  • 2015年11月22日 17:41
  • 37KB
  • 下载

C# 支持拖放的TreeView控件,文件拖拽大全。

c# winform TreeView控件中实现拖拽的功能 必须处理好三种事件:"ItemDrag"(开始)、"DragEnter"(进入)、"DragDrop"(处理放下)。其中只有第...
  • wlanye
  • wlanye
  • 2012年05月07日 14:05
  • 3023
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DragAcceptFiles 拖放文件到多文档框架上
举报原因:
原因补充:

(最多只允许输入30个字)