MSVC++ : Технология Drag&Drop
Требования: MSVC++6.0 SP3, Win98/2000/NT4(SP5) ОписаниеДанный пример показывает, как просто можно добавить в своё приложение технологию Drag&Drop. Как использовать[Файлы, которые нужно импортировать в Ваш проект выделены красным , а код, который нужно добавить выделен синим ] (1) (2) (3) [DropTargetDlg.h:] // константа сообщения #define WM_DROPACTION WM_APP+1 // объявление обработчика сообщения LRESULT OnDropAction(WPARAM wParam = 0, LPARAM lParam = 0); [DropTargetDlg.cpp:] BEGIN_MESSAGE_MAP(CDropTargetDlg, CDialog) // [...] ON_MESSAGE(WM_DROPACTION, OnDropAction) END_MESSAGE_MAP() (4) OleInitialize(NULL); BOOL br = m_DropTarget.Register(this); для регистрации Вашего приложения, как способного принимать перемещённые файлы. (5) [DropTargetDlg.cpp:] LRESULT CDropTargetDlg::OnDropAction(WPARAM wParam, LPARAM lParam) { // [...] } (6) [DropTargetDlg.h:] CMyDropTarget m_DropTarget; Описание функций: Внутри файла, MyDropTarget.cpp / .h находятся следующие функции: // возвращает количество файлов, перенесённое на программу. 0 если нет int GetNumDroppedFiles(); // получает имя (ASCII) первого перенесённого файла char* GetFirstDroppedFileName(); // получает остальные (позиция iNum) имена перенесённых файлов char* GetDroppedFileName(int iNum=0); // получает имя файла (wide char) wchar_t* GetDroppedFileNameW(int iNum=0); // получает имя первого перенесённого файла (wide char) wchar_t* GetFirstDroppedFileNameW(); // обработчик перетаскивания файла BOOL OnDrop( CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point ); OnDrop() возвращает структуру (wide char), содержащую список перенесённых файлов через указатель COleDataObject. Этот список разделён на простые имена файлов, которыми заполнен массив наследованный от CArray, не имеющий ограничений на количество файлов, которые можно перетащить на приложение. Нормальная кодировка используется в Win3.X, 9X, а кодировка wide character используется в WinNT4 & W2K. Обе они поддерживаются через операторы in-line. DownloadsСкачать откомпилированный пример DropTargetDemoExe.zip - 6.065 kBytes Скачать исходник примера DropTargetDemo.zip - 14.618 kBytes Скачать исходник DropTargetSrc.zip - 3.800 kBytes
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5206 |