Здравствуйте, 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.
.
З.Ы. Может быть есть способ "правильнее" или проще, но лично я до него не додумался.
Перед тем, как улучшиться, ситуация ухудшается. (из законов Мерфи)