duilib : 在对话框中增加文件拖拽功能
2014-04-02 23:16
441 查看
纯win32的做法, 和duilib没半点关系.
只是被增加文件拖拽功能的工程是 基于duilib的win32工程~
只是被增加文件拖拽功能的工程是 基于duilib的win32工程~
/// 创建能接受文件拖拽的对话框 void CMainDlg::DoTask() { CAcceptFilesDlg * pDlg = NULL; pDlg = new CAcceptFilesDlg(XML_FILE_NAME, WND_CLASS_NAME); pDlg->SetOwner(this); /// 创建对话框时, 指定接受文件拖拽的风格 pDlg->Create( this->GetHWND(), WND_DISP_NAME, UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE | WS_EX_ACCEPTFILES); pDlg->CenterWindow(); HaveSubDlgOnMainDlg(TRUE); pDlg->ShowModal(); HaveSubDlgOnMainDlg(FALSE); } /// ... LRESULT CAcceptFilesDlg::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DROPFILES: { DropFileOnDlg((HDROP)wParam); } break; /// ... default: break; } return __super::HandleMessage(uMsg, wParam, lParam); } void CAcceptFilesDlg::DropFileOnDlg(HDROP hDrop) { WORD wNumFilesDropped = DragQueryFile(hDrop, -1, NULL, 0); WORD wPathnameSize = 0; WCHAR * pFilePathName = NULL; std::wstring strFirstFile = L""; struct _stat64i32 info; // there may be many, but we'll only use the first if (wNumFilesDropped > 0) { wPathnameSize = DragQueryFile(hDrop, 0, NULL, 0); wPathnameSize++; pFilePathName = new WCHAR[wPathnameSize]; if (NULL == pFilePathName) { _ASSERT(0); DragFinish(hDrop); return; } ::ZeroMemory(pFilePathName, wPathnameSize); DragQueryFile(hDrop, 0, pFilePathName, wPathnameSize); strFirstFile = pFilePathName; SAFE_DELETE(pFilePathName); } DragFinish(hDrop); if ((strFirstFile.size() > 0) && (0 == _wstat(strFirstFile.c_str(), &info)) && ((info.st_mode & _S_IFREG) > 0) && (info.st_size > 0)) { m_pLabelFilePathName->SetText(strFirstFile.c_str()); } }
相关文章推荐
- duilib : 在对话框中增加文件拖拽功能
- 为“打开文件对话框”增加“预览”功能实例
- VS2012 MFC 对话框支持文件拖拽功能
- 简单的实现对话框中文件的拖拽功能
- 增加弹出层的拖拽功能
- 给ueditor增加删除文件功能
- Lotus Notes 8.5.1 新功能 - 增加的"日历-拖拽"功能
- WinForm实现简单的拖拽文件到出题的功能(C#)(3)
- 下载一个文件,先是显示一个版权对话框,然后确定后的那个下载功能
- linux增加串口传送文件功能 以及minicom
- 仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.2,增加离线消息、离线文件功能(源码)
- python环境下django增加读取ini配置文件功能
- MFC单文档实现文件拖拽功能
- MFC中实现单个控件接收拖拽文件的功能
- 文件拖拽功能窗口实现
- 增加弹出层的拖拽功能
- duilib中控件拖拽功能的实现方法(附源码)
- 使用trash-cli避免误删文件--为rm增加回收站功能
- 多文件上传插件Stream,是Uploadify的Flash版和Html5版的结合,带进度条,并支持html5断点续传(附件上传),拖拽等功能