Drag and Drop File-Server
Wolfgang Loch -- Wolfgang.Loch@RZ.TU-Ilmenau.DE Thursday, May 30, 1996 Environment Visual C++2.0 WinNT(3.51) I want to make a Drag and Drop File Server (like then Filemanager). I've got a Listbox in a Dialog-based application that contains filenames. I want the user to be able to drag these files to another app or to copy them to the Filemanager. So far I found out that a should use CDataSource::DoDragDrop. But I didn't get it to work. Does anyone have a hint and/or some sample code? thanks, Wolfgang
Thomas Drolshagen -- drolshagen@deos.ch Monday, June 03, 1996 Hi Wolfgang For only implementing file drag and drop (no OLE drag and drop) there's a sample on the Microsoft Development Library calle DRAGDROP. If you need OLE drag and drop check: - Internet (anonymous FTP) ftp ftp.microsoft.com Change to the SOFTLIB\MSLFILES directory Get LSTDRG.EXE HTH Thomas Drolshagen >---------- >From: Wolfgang Loch[SMTP:Wolfgang.Loch@RZ.TU-Ilmenau.DE] >Sent: Donnerstag, 30. Mai 1996 07:48 >To: mfc-l@netcom.com >Subject: Drag and Drop File-Server > >Environment Visual C++2.0 WinNT(3.51) > >I want to make a Drag and Drop File Server (like then Filemanager). > >I've got a Listbox in a Dialog-based application that contains >filenames. I want the user to be able to drag these files to another app >or to copy them to the Filemanager. >So far I found out that a should use CDataSource::DoDragDrop. But I >didn't get it to work. Does anyone have a hint and/or some sample code? > >thanks, > Wolfgang >
Brian Jones -- BrianJ@ats-nt.apptechsys.com Thursday, June 27, 1996 Here is a simple class that serializes a list of files for a drag/drop server: IMPLEMENT_SERIAL(CDragFiles, CObject, 1); CDragFiles::CDragFiles(CStringList* plistFiles) { m_plistFiles = plistFiles; } CDragFiles::~CDragFiles() { } void CDragFiles::Serialize( CArchive& archive ) { DROPFILES df; POSITION pos; CString strFile = ""; // now do the stuff for our specific class if( archive.IsStoring() ) { df.pFiles = (DWORD)(sizeof(DROPFILES)); df.pt.x = 0; df.pt.y = 0; df.fNC = 0; df.fWide = 0; archive.Write(&df, sizeof(DROPFILES)); if((m_plistFiles) && (!m_plistFiles->IsEmpty())) { pos = m_plistFiles->GetHeadPosition(); while(pos) { strFile = m_plistFiles->GetNext(pos); archive.Write(strFile.GetBuffer(strFile.GetLength()),strFile.GetLength ()); archive.Write("\0",1); } archive << (int)0; } } } This can be implemented with the following code: Given a CStringList* plistFiles filled with the list of files to be dragged: CSharedFile fileList; CString strData = ""; CArchive ar(&fileList,CArchive::store); if(!plistFiles->IsEmpty()) { CDragFiles df(plistFiles); df.Serialize(ar); ar.Close(); plistFiles->RemoveAll(); pDataSource->CacheGlobalData(CF_HDROP,fileList.Detach()); } Hope this helps some. Brian Jones BrianJ@apptechsys.com (360)478-2710 ext 3209 ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////// In response to: ////////////////////////////////////////////////////////////////////////// Environment Visual C++2.0 WinNT(3.51) I want to make a Drag and Drop File Server (like then Filemanager). I've got a Listbox in a Dialog-based application that contains filenames. I want the user to be able to drag these files to another app or to copy them to the Filemanager. So far I found out that a should use CDataSource::DoDragDrop. But I didn't get it to work. Does anyone have a hint and/or some sample code? thanks, Wolfgang
| Вернуться в корень Архива |