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.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。