No.2ベストアンサー
- 回答日時:
つまりLVN_BEGINDRAGのメッセージハンドラを追加しても呼び出されない、という状況ですね。
VisualC++.NET 2003 MFC使用 SDI CListViewのモードはreport という環境で試してみました。
LVN_BEGINDRAGのメッセージハンドラを追加した後、
リストビューのアイテムをドラッグしようとすると、このハンドラが呼び出されました。
reportモードにした他はスタイルを変更していません。
おおーー!!
そうです。まさにそうです。
reportモードにしたらLVN_BEGINDRAGのメッセージハンドラが呼び出されました。
これで後続処理が追加できます。
MASATO3さんありがとうございました。
No.1
- 回答日時:
私が前にリストビューからドラッグ&ドロップが可能なアプリケーションを作ったときは、
フラグを一つ立てればお終いというような簡単な話ではありませんでした。
結構大変だと思いますので御覚悟下さい。
今回の質問ですが、
(1) 一つのアプリケーションのウィンドウ内だけでドラッグ&ドロップが完結すれば良い
(2) それとも他のアプリケーション(デスクトップ含む)にまでドロップできるようにする
という2点のどちらを求めているのかによって答えがだいぶ変わります。
(1)の場合でしたら、
ドラッグ&ドロップの開始をLVN_BEGINDRAGメッセージハンドラで捕らえ、
CWnd::SetCaptureでマウスがウィンドウの外に出ても大丈夫なようにしておき、
ドロップをOnLButtonUpで捕らえてドロップ処理を行い、
ドロップ処理を行った後ReleaseCaptureでマウスを解放する、という流れになります。
(2)の場合でしたら、
ドラッグ&ドロップの開始をLVN_BEGINDRAGメッセージハンドラで捕らえ、
COleDataSourceインスタンスを作成し、
COleDataSourceインスタンスにドラッグ&ドロップ用のデータを設定し、
COleDataSource::DoDragDropを呼び出してドラッグ開始
ドロップ処理の方は外からのドラッグ&ドロップを捕らえる方法(COleDropTargetを使う方法)と
同じですので省略します。
(2)の方が大変だと思います。
「ドラッグ&ドロップ用のデータ」の形式など、上記以外に
調べることも考えることもたくさんあります。
もCOleDataSourceをキーワードに検索サイトで色々調べてみて下さい。
この回答への補足
実現させたいのは(1)です。
質問の補足なのですが、現状リストビューのアイテム自体がドラッグできない状態で、(アイテムを左クリックで選択はできるが、ドラッグでアイテムを掴めない)これは、Window生成時のスタイル指定が不足しているのでしょうか?
ですので現状は(1)よりさらに前です。
すいません。質問内容が薄かったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google Drive 【Google ドライブ】どのフォルダに入ったの? 1 2022/10/21 10:08
- Illustrator(イラストレーター) プロパティパネルを元に戻せますか 3 2022/05/07 16:44
- マウス・キーボード マウスのクリックボタンの調子が良くないです。 ドラッグ&ドロップしようとするとよく開いてしまいます。 4 2022/03/23 18:20
- Illustrator(イラストレーター) 添付画像の帽子マーク~Tは、既成のフォントに類似フォントがありますでしょうか 1 2022/08/17 20:51
- バックアップ パソコンからDVDへコピー 5 2022/08/18 14:02
- Photoshop(フォトショップ) 【Photoshop】画像拡大時に急激に画面外まで拡大してしまうのを制御したい 1 2023/08/25 03:04
- Chrome(クローム) サイトのショートカットアイコンの格納場所は? 1 2022/12/26 01:38
- Excel(エクセル) エクセルのワークシートを簡単に別ファイルにする方法は? 5 2023/01/11 14:50
- LANケーブル・USBケーブル リンクケーブルが機能してない? 2 2022/06/24 11:38
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
リストビューの選択状態を取得するメッセージはありますか?
C言語・C++・C#
-
-
4
CListCtrl で OnLButtonUp を実行できない
C言語・C++・C#
-
5
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
6
リストコントロールのデータの変更を検知したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ASP.NET】マスターページに配...
-
ポストバック時の画面スクロー...
-
C#でドラッグ&ドロップが機能し...
-
【ASP2.0】TextBoxのフォーカス...
-
コネクション・セッション・ト...
-
Accessの画面更新を一時的に停...
-
ブラウザの×ボタン(閉じるボタ...
-
アドレスバーのないウィンドウ...
-
画面遷移が不正ですと表示されます
-
ASP.NET(VB)でのデータグリッド...
-
コンピュータへの接続数が最大...
-
HTMLボタンの文字色を変え...
-
ブラウザを閉じずにセッション...
-
asp.NET初心者です。「 ’Contex...
-
エクセルVBA 別のブックのユ...
-
ボタンをクリックした時に、入...
-
VBAで特定のテキストボックスを...
-
ASPで画面間のパラメタ受け渡し
-
NumericUpDownコントロールでの...
-
【ASP.NET】ページ遷移してもGr...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数選択のListBoxでClickイベ...
-
C#でドラッグ&ドロップが機能し...
-
【ASP.NET】マスターページに配...
-
【ASP2.0】TextBoxのフォーカス...
-
ポストバック(__doPostback)へ...
-
[ASP.NET] ページ内でジャンプ。
-
ポストバック時の画面スクロー...
-
【VB6】 変数1 = 変数1 Or $H2
-
自作exeを常駐させるとPCがシャ...
-
DragEnterイベントについて(VS...
-
アクセス+vb 複数コントロー...
-
VBのタイマーイベントについて
-
ドラッグドロップ(AllowDrop)に...
-
ページ切り替え時の動作 (Page...
-
TreeViewの制御について
-
Ctrl+vのイベントを解除
-
リストビュー内でのドラッグ&...
-
treeview展開イベント(VS2010C++)
-
getParameterで値が取得できず...
-
Accessの画面更新を一時的に停...
おすすめ情報