6

いくつかの新機能を必要とする純粋な Winapi アプリケーションがあります。そのうちの 1 つは、リスト間で (複数の) 要素をドラッグ アンド ドロップできる 2 つのリストとして実装するのが最適です。新しい機能は、単一のダイアログに限定できます。

これを実装する最も簡単な方法は何ですか? いくつかのアイデア:

  • Pure Winapi (それは DetectDrag ですか)
  • この 1 つのダイアログを提供する別の MFC または .NET DLL
  • Microsoft WebBrowser コントロールを埋め込み、JQuery を使用する

これらのオプションのうち、避けるべきものはありますか?
より良いアイデアはありますか?
実装が最も速いのはどれですか?
始める方法についての指針はありますか?

4

5 に答える 5

9

私のアドバイスは、アプリケーションが純粋な winapi にある場合は、そのままにしておくことです。

ドラッグ可能なアイテムを含む 1 つのダイアログのためだけに .NET Framework ランタイムを開始することは、WebBrowser コントロールをホストし、その 1 つの機能のために JQuery を使用するのと同じくらい悪いことです。私に聞いて ;) )。

そうしないと、自分自身 (および場合によっては他のユーザー) を保守性の悪夢に陥れ、最も速い方法が最も問題のある方法になります。

編集:おそらく、これらの 2 つの記事はドラッグドロップの実装に役立つでしょう。それらは ListViews での行の並べ替えに関するものですが、おそらくアイデアを得るのに役立つでしょう。

于 2008-10-10T12:19:32.093 に答える
5

Raymond Chen は、このトピックについて少し前に一連のブログ投稿を書きました。ここから始めてください。

于 2008-10-10T13:28:22.830 に答える
2

Win32 api でこれを実装した後のいくつかのメモ:

ドラッグ アンド ドロップは、ListBox コントロールではサポートされていません。ListView コントロールである必要があります。

このCodeProject の記事は非常に優れています。(ありがとう macbirdie)もちろん、 ListViews
の MSDN セクションは非常に便利です。

于 2008-11-02T09:43:27.643 に答える
0

すべてのコードは C および win32 api の MSDN にあります。コピーして貼り付けるだけです。

そして、プロの Win32 api ng news://194.177.96.26/comp.os.ms-windows.programmer.win32 を参照してください。ここでは、これらすべてが何十年にもわたって議論されてきました...

于 2008-10-11T16:00:10.790 に答える
-1

あなたが最もよく知っている方法が最も速いでしょう。

確かに、.NET Windows フォームでこれを行うのは非常に簡単です。数行のコードを記述するだけで、ListBox エントリ間で項目を簡単にドラッグ アンド ドロップできます。サンプルについては、 CodeProjectなどを参照してください。

于 2008-10-10T09:25:12.753 に答える