实现拖拽文件到单文档应用程序的View中

      很多软件都具备将文档直接拖拽到软件界面上,然后软件自动读取、解析文档,最后在界面上呈现文档内容。这里主要就是响应一个WM_DropFiles消息。下面就在一个单文档应用程序里面实现该功能。

第一步:在View的头文件添加WM_DropFiles消息响应函数声明:

afx_msg void OnDropFiles(HDROP hDropInfo);

第二步:在view的cpp文件中添加WM_DropFiles的消息映射:

ON_WM_DROPFILES()

第三步:在view的cpp文件中实现OnDropFiles消息响应函数:  

 void CTestView::OnDropFiles(HDROP hDropInfo)
{
      CScrollView::OnDropFiles(hDropInfo);
      TCHAR filePath[1024] = {0};
           //获取拖拽的文件的路径
      DragQueryFile(hDropInfo , 0 , (LPTSTR)filePath ,1024);

          CString strFilePath = filePath;

          //TODO:有了文件路径后,就可以去读取文件,然后解析文件、呈现内容了
}

第四步:还需要在OnInitialUpdate函数中调用DragAcceptFiles(TRUE)方法:

void CTestView:: OnInitialUpdate ()
{
       DragAcceptFiles(TRUE);
}
原文地址:https://www.cnblogs.com/RascallySnake/p/2939122.html