Перетащите в winapi

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

Какой способ реализовать это быстрее всего? Несколько идей:

  • Чистый Winapi (это DetectDrag)
  • Отдельная библиотека MFC или .NET, которая предоставляет этот диалог
  • Вставьте элемент управления Microsoft WebBrowser и используйте JQuery

Любой из этих вариантов, которых следует избегать?
Есть идеи получше? Что реализовать быстрее всего?
Есть какие-нибудь указания о том, как начать?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
8 029
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Какой бы метод вы ни выбрали, он будет самым быстрым.

Конечно, это очень просто сделать в .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 где все это обсуждается десятилетиями ...

news://194.177.96.26/ теперь просто поисковая строка браузера (в данном случае Google). Материал, «обсуждаемый десятилетиями», к сожалению, не появляется. Архив может существовать, но его местонахождение не раскрывается с помощью этого поиска новостей.

Laurie Stearn 17.03.2016 13:44

Несколько замечаний после реализации этого в Win32 api:

Элемент управления ListBox не поддерживает перетаскивание. Это должен быть элемент управления ListView.

Этот Статья CodeProject очень хорош. (Спасибо, macbirdie)
Раздел MSDN в ListViews, конечно, очень полезен.

Другие вопросы по теме