COleDataSourceを使用したドラッグ処理中にマウスイベントを取得するには?


毘沙門天  2005-05-19 03:46:07  No: 57442  IP: [192.*.*.*]

COleDataSourceのDoDragDropを呼び出してCListCtrlからCTreeCtrlへのドロップを実装しました。

しかし、CListCtrlのアイテム上にマウスが移動したときにそこのアイテムを反転表示したいのですが、DoDragDropが動作している間はマウスイベントが全く飛んで来なくなってしまうようで、実現することができませんでした。

どなたかDoDragDropを実行中でもマウスのイベントを取得する方法、あるいは上記の動作を実現する別の方法をご存知でしたら教えてください。

よろしくお願いします。

編集    削除
forty-five  2005-05-19 09:29:20  No: 57443  IP: [192.*.*.*]

ドロップターゲットの処理は
COleDropTarget を使えば出来ると思います。

編集    削除
毘沙門天  2005-05-19 21:48:12  No: 57444  IP: [192.*.*.*]

>forty-fiveさん

ありがとうございます。

ちなみに説明が間違っていました(^^;。
  「CListCtrlのアイテム上に」→「CTreeCtrlのアイテム上に」
あまり変わりませんが。

この場合、

・CTreeCtrlを派生して、そのメンバにCOleDropTargetの派生クラスを
置く。
・COleDropTargetの派生クラスのOnDragEnter(),OnDragOver()でアイテムのHitTestを行い、ドロップターゲットの処理を行う。

ということで良いのでしょうか?
OnDragOverがMOUSEMOVEに相当するんですよね?

編集    削除
forty-five  2005-05-20 06:55:47  No: 57445  IP: [192.*.*.*]

多分その手順で問題ないと思います。

編集    削除
毘沙門天  2005-05-24 01:14:09  No: 57446  IP: [192.*.*.*]

>forty-fiveさん
ありがとうございます。
試してみます。

編集    削除