Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Технология Drag&Drop


Автор: Volker Bartheld.

Требования: MSVC++6.0 SP3, Win98/2000/NT4(SP5)

Описание

Данный пример показывает, как просто можно добавить в своё приложение технологию Drag&Drop.

Как использовать

[Файлы, которые нужно импортировать в Ваш проект выделены красным, а код, который нужно добавить выделен синим]

(1)
Добавьте в Ваш проект файлы объявления классов
- DropFileArray.cpp / .h
- MyDropTarget.cpp / .h

(2)
#include "MyDropTarget.h" в Ваш основной файл *.cpp
(в случае с примером "DropTargetDlg.cpp".

(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)
Добавляем следующее в диалоговую функцию-член   "OnInitDialog()"

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





<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS