VisualC++の質問です。
CListViewクラスでレポートビューを使用しています。
ドラッグによってアイテムの順番を入れ換えたいのですが、ドラッグイベント
を検知する方法が分かりません。
デフォルトの状態ですと、ドラッグしても表示に変化がありません。
ドラッグイベントが発生していないのでしょうか?
ドラッグの開始とドラッグ期間、ドラッグ終了が検知できればアイテムの交換
は実現できそうな気がしています。
よろしくお願い致します。
>ヘッダー項目のドラッグ アンド ドロップをサポートするには、HDS_DRAGDROP スタイルを指定します。
>このスタイルを設定すると、ユーザーがヘッダー コントロール内でヘッダー項目の順序を変更できるように
>なります。デフォルト動作では、ドラッグ中のヘッダー項目が半透明イメージで表示されるので、
>ドロップ位置を視覚的に識別できるようになります。
とMSDNにあります。
Bunさんご回答ありがとうございます。
しかし、私が今実現したいのはヘッダーではなくアイテムのドラッグ&ドロップなのです。
よろしくお願い致します。
CListCtrlの拡張スタイルで ドラッグドロップを許可 にチェックを入れてますか?
> CListCtrlの拡張スタイルで ドラッグドロップを許可 にチェックを入れてますか?
はい、入れています。外から中へのドラッグ&ドロップに関しては、
ファイルマネージャによるドラッグ&ドロップを実装しています。
先程、CView::Begindragなる関数を見つけました。この関数でドラッグの開始を検知
することが出来ましたので、もしかするとうまくいくかもしれません。
もう少し頑張ってみます。
おかげさまで目的を実現することができました。結局、
Begindrag関数でドラッグの開始を検知し、
OnLButtonUp関数でドラッグの終了を検知しました。
作業もようやく最終段階に入ってきました。
Bunさんご助言ありがとうございました。