ある TreeList から別の ThreeList に項目をドラッグ アンド ドロップする必要がありますが、同じ TreeList でこれを作成するためのチュートリアルしか見つかりません。誰でもこれを手伝ってもらえますか? また、ファイル システム (ウィンドウ エクスプローラー) から TreeList にファイルまたはフォルダーをドラッグ アンド ドロップする方法も興味深いです。MFC C++ を使用しています。ありがとう!
1 に答える
すべての MFC の質問に対する必須の本当の答え ( 「あなたが住んでいる場所が 1997 年でない限り、MFC を使用しないでください」 ) を省略することなく、OLE ドラッグ アンド ドロップは両方の目標を達成するのに役立ちます。
現時点では MSVC は手元にありませんが、この例はかなり徹底しているように見えます...移動、コピー、およびスクロール:
http://www.ucancode.net/CPP_Library_Control_Tool/OLE-DRAG-DROP-TREE-Control-CTreeCtrl-VC-Article.htm
それをベースに使えます。ただし、Windows エクスプローラーからドロップインする場合は、メソッドOnDragEnter()
とOnDragOver()
メソッドに追加のチェックを入れて、CF_HDROP
データが利用可能かどうかを確認します。
if (pDataObject->IsDataAvailable(CF_HDROP)) {
/* Extract the DROPFILES data out of the pDataObject */
}
DROPFILES
この記事では、風変わりなOLE 構造からファイル名リストを取得する方法について詳しく説明します。
http://www.codeproject.com/Articles/840/How-to-Implement-Drag-and-Drop-Between-Your-Progra
対照的に、ひどく設計されていないものを見たい場合は、Qt ドラッグ & ドロップのサンプルを見てください。