在MFC中实现拖拽文件到对话框中的编辑控件中

来源:互联网 发布:c语言函数头文件格式 编辑:程序博客网 时间:2024/05/29 18:28

这次我学习了如何将文件拖拽到对话框的编辑控件中,具体如下:




要实现这个功能,首先要重载CEdit类,定义个派生类CDragEdit类,并重载他的WM_CREATE方法,在其中添加DragAcceptFile(TRUE);方法


然后利用类向导为CDragEdit类添加WM_DROPFILE消息响应函数:

代码如下:

void CDragEdit::OnDropFiles(HDROP hDropInfo){// TODO:  拖拽文件的响应函数WORD wNumFileDropped = DragQueryFile(hDropInfo, -1, NULL, 0);CString firstFile = "";for (WORD x = 0; x < wNumFileDropped; x++){WORD wPathnameSize = DragQueryFile(hDropInfo, x, NULL, 0);char* npszFile = (char*)LocalAlloc(LPTR, wPathnameSize += 1);if (npszFile == NULL){continue;}DragQueryFile(hDropInfo, x, npszFile, wPathnameSize);if (firstFile == ""){firstFile = npszFile;}LocalFree(npszFile);}DragFinish(hDropInfo);SetWindowText(firstFile);UpdateData(FALSE);//CDialogEx::OnDropFiles(hDropInfo);}



然后在对话框界面中添加一个编辑框控件,并且关联一个成员变量m_DragEdit; 然后在属性中设置为Accept File就可以了


以上代码就完成了拖拽文件到对话框中,并且在对话框中显示具体路径了

0 0
原创粉丝点击