MFC实现对话框编辑控件上拖拽文件
本文实例为大家分享了MFC实现对话框编辑控件上拖拽文件的具体代码,供大家参考,具体内容如下
步骤
1、重载CEdit类
2、添加编辑框控件
首先,重载CEdit类,定义一个派生类CDragEdit类,并重载它的WM_CREATE方法,在其中添加DragAcceptFile(TRUE);方法。
//CDragEdit.h
#pragmaonce
classCDragEdit:publicCEdit
{
DECLARE_DYNAMIC(CDragEdit)
public:
CDragEdit();
virtual~CDragEdit();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);
afx_msgvoidOnDropFiles(HDROPhDropInfo);
};
然后,利用类向导为CDragEdit类添加WM_DROPFILE消息相应函数;
//CDragEdit.cpp
intCDragEdit::OnCreate(LPCREATESTRUCTlpCreateStruct)
{
if(CEdit::OnCreate(lpCreateStruct)==-1)
return-1;
//TODO:在此添加您专用的创建代码
DragAcceptFiles(TRUE);
return0;
}
voidCDragEdit::OnDropFiles(HDROPhDropInfo)
{
UINTcount;
TCHARfilePath[MAX_PATH]={0};
count=DragQueryFile(hDropInfo,-1,NULL,0);
if(1==count)
{
DragQueryFile(hDropInfo,0,filePath,sizeof(filePath));
this->SetWindowTextW(filePath);
UpdateData(FALSE);
DragFinish(hDropInfo);//拖放成功后,释放内存
}
else
{
CStringszFilePath;
for(UINTi=0;iSetWindowTextW(szFilePath);
UpdateData(FALSE);
DragFinish(hDropInfo);
}
//MFCDlg.h
#programonce
#include"CDragEdit.h"
classCMFDlg:publicCDialogEx
{
……………………
public:
CDragEditm_DragEdit;
}
最后,设置文本框控件属性[AcceptFiles]、[multiline]值为True.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。