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