MFC基于对话框 让EditControl 支持拖拽文件获得全路径

您所在的位置:网站首页 mfc获取文件名 MFC基于对话框 让EditControl 支持拖拽文件获得全路径

MFC基于对话框 让EditControl 支持拖拽文件获得全路径

2023-11-08 02:53| 来源: 网络整理| 查看: 265

1.右键-解决方案-添加-类  

注意:不要在资源界面上右键-添加类,因为那样添加的是MFC类,不一样的。

2.添加类界面填写自定义的类名如:CMyEdit 继承于(基类) CEdit

3.切换到类视图,选中上面建立的CMyEdit类,在消息中创建WM_DROPFILES的消息映射,并添加代码

void CMyEdit::OnDropFiles(HDROP hDropInfo) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if (hDropInfo) { int nDrag; //拖拽文件的数量 nDrag = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0); if (nDrag == 1) { // 被拖拽的文件的文件名 TCHAR Path[MAX_PATH + 1] = { 0 }; // 得到被拖拽的文件名 DragQueryFile(hDropInfo, 0, Path, MAX_PATH); // 把文件名显示出来 SetWindowText(Path); DragFinish(hDropInfo); } else { MessageBox(_T("只能拖拽一个文件!")); } CEdit::OnDropFiles(hDropInfo); } }

4.切换到资源视图,在要接受拖拽文件的EditControl上右键-添加变量,添加变量名称用来关联自定义类的消息相应- 下一步-下一步-完成。

注意1:不要忘记在头文件中 引用创建的自定义类的头文件,否则不会认识 CMyEdit类型导致报错。  #include "CMyEdit.h"

注意2:在控件的属性中“接受文件”选择True

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3