Re[3]: доработка редактора
От: Macr0s Россия  
Дата: 23.01.07 11:12
Оценка:
Здравствуйте, eldar9x_, Вы писали:

_>3-й вариант исключается по той причине, что разработчик Microsoft

Интересно, что за программа такая
_>2-й — кодить на VS или Delphi то есть на С++ и Паскаль я еще умею, а вот до ассемблера мне еще слабо. Так что остается первый вариант, вот о деталях было бы интересно...

Ну если подумать — я думаю, дело обойдется хуком мышиным (WH_MOUSE).
Алгоритм работы загрузчика примерно такой:
1) запуск программы
2) установка хука
3) всё, можно работать в программе.

В функции хука как раз и реализуется Drag-n-Drop.
Как конкретно — не в курсе, Drag-n-Drop никогда не программировал. Но как-то так:
if(мыша над нашим редактором)
{
  if(имеем выделенный текст, который ещё не перетаскивается)
  {
     StartDrag(наш текст);
  } else if(наш текст перетаскивается)
  {
     // перетаскиваем дальше
  } else  if(конец перетаскивания)
  {
     EndDrag(наш текст);
     // помещаем наш текст куда надо
  }
}

Конечно с обработкой нажатых клавиш мыши и всё такое...
Подробнее про хуки можно почитать здесь
Автор(ы): Kyle Marsh
Дата: 14.03.2001

Автор подробно описывает принципы работы хуков, их виды и случаи применения.
Статья не содержит примеров хуковых функций и носит лишь ознакомительный
характер. Рекомендуется программистам, только начинающим осваивать эту область
программирования для Windows.
.

З.Ы. Может быть есть способ "правильнее" или проще, но лично я до него не додумался.
Перед тем, как улучшиться, ситуация ухудшается. (из законов Мерфи)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.