ドラッグアンドドロップのときの項目選択

[戻る]
Hana 2002/07/10(水) 16:40:04
CListViewやCTreeViewへファイルをドラッグしてくるときに、
Viewにある項目やアイコンを選択させる方法が分かりません。
エクスプローラなどでは当たり前の動作ですが、
どの辺を調べていいのか見当もつきません。
どなたか教えてください。お願いします。

wood 2002/07/11(木) 04:56:43
CListCtrl::GetFirstSelectedItemPosition
て質問の趣旨はづしてますか

dairygoods 2002/07/11(木) 09:57:16
CListCtrl::SelectDropTarget()かも。

Hana 2002/07/11(木) 11:39:26
CTreeCtrlにはSelectDropTargetってあるんですけど
CListCtrlにはないようです。
CTreeCtrlとCListCtrlでは、方法がぜんぜん違うのでしょうか。

dairygoods 2002/07/11(木) 12:00:32
> CListCtrl::SelectDropTarget()かも。
CTreeCtrl::SelectDropTarget()の間違いでした。失礼しました。

リストの場合は、項目が選択されている時の見た目と
項目がドロップ対象になっているときの見た目は同じです。

ツリーの場合は、項目が選択されているときは、
文字が選択状態になると同時にアイコンが選択時のものに置き換わり、
項目がドロップ対象になっているときは、
文字が選択状態になりますが、アイコンは変わりません。

そのため、ツリーの方だけ専用の関数があります。

方法は、どちらも同じで、
カーソル位置にある項目を調べて、
リストでは、SetItemStateで選択状態にし、
ツリーでは、SelectDropTargetでドロップ対象状態にします。
(当然カーソルが外れたら元に戻します。)

Hana 2002/07/11(木) 13:44:25
dairygoodsさん、どうもありがとうございます。
だいたいやり方はわかりました。
あとひとつだけわからないのが、
スプリッタウィンドウで二つのビューを両方ともアクティブにする方法って
あるんでしょうか?

トオリスガリ 2002/07/11(木) 15:18:32
ないでしょう。
CListCtrlの場合スタイルに LVS_SHOWSELALWAYS を追加すれば
コントロールにフォーカスがなくても、選択されていれば常に選択状態で表示します。

Hana 2002/07/11(木) 17:36:14
[[解決]]
みなさんどうもありがとうございました。
思い通りの動作ができました。

古いスレッドには追加発言できません。