У меня есть чистое приложение Winapi, которому нужно несколько новых функций. Один из них лучше всего реализовать в виде двух списков, в которых вы можете перетаскивать (несколько) элементов между списками. Новая функция может быть ограничена одним диалоговым окном.
Какой способ реализовать это быстрее всего? Несколько идей:
Любой из этих вариантов, которых следует избегать?
Есть идеи получше?
Что реализовать быстрее всего?
Есть какие-нибудь указания о том, как начать?





Какой бы метод вы ни выбрали, он будет самым быстрым.
Конечно, это очень просто сделать в .NET Windows Forms. Вы можете легко перетаскивать элементы между записями ListBox, написав всего несколько строк кода. Поищите образцы где-нибудь вроде CodeProject.
Я бы посоветовал, если приложение написано на чистом winapi, так и оставьте.
Запуск среды выполнения .NET framework только для одного диалога с перетаскиваемыми элементами так же плох, как размещение элемента управления WebBrowser и использование JQuery для этой одной функции - это, по крайней мере, достойно thedailywtf.com, если вы спросите меня (но опять же, вы не Спроси меня ;) ).
В противном случае вы погрузите себя (и, возможно, других) в кошмар ремонтопригодности, и самый быстрый способ станет наиболее проблематичным.
Редактировать: Может быть, статьи тедва помогут в реализации перетаскивания - они о переупорядочении строк в ListViews, но, вероятно, помогут понять идею.
Раймонд Чен не так давно написал серию сообщений в блоге на эту тему. Запустите здесь.
Весь код находится в MSDN на C и win32 api Просто скопируйте и вставьте.
И посмотрите профессиональный Win32 api ng новости: //194.177.96.26/comp.os.ms-windows.programmer.win32 где все это обсуждается десятилетиями ...
Несколько замечаний после реализации этого в Win32 api:
Элемент управления ListBox не поддерживает перетаскивание. Это должен быть элемент управления ListView.
Этот Статья CodeProject очень хорош. (Спасибо, macbirdie)
Раздел MSDN в ListViews, конечно, очень полезен.
news://194.177.96.26/теперь просто поисковая строка браузера (в данном случае Google). Материал, «обсуждаемый десятилетиями», к сожалению, не появляется. Архив может существовать, но его местонахождение не раскрывается с помощью этого поиска новостей.