TreeViewのノードをD&Dで動かしたい など

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
水波形
記事: 106
登録日時: 2009年3月29日(日) 15:45
連絡する:

TreeViewのノードをD&Dで動かしたい など

#1 投稿記事 by 水波形 »

お世話になっております。
現在、Tree型のテキストエディタを作成しており、TreeViewのNodeをドラッグアンドドロップで動かすという作業をしたいのですが、わからなく詰まってしまいました。

検索し、サイトを探すと、どうもABにはない書き方(TreeView1.AllowDrop = True
みたいな感じ)で書いてあり、私にはさっぱりわかりません……(便利にしようとはしてるのでしょうが……^^;)
ABでTreeViewのノードをドラッグアンドドロップで移動させるには、どうすればいいのでしょうか。


また、EditBox、TreeViewの大きさを、これもまたドラッグ&ドロップで動かしたいと思い、このような感じ(※下記のページから、ソフトをDLしていただけると嬉しいです)で書いたのですが、
クリックしたまま枠線の上に持っていくと移動してしまいます。
これはみなさん、どのように書いているのでしょうか。
ご存知の方がいらっしゃいましたら、ご教授願います。

▽DL先▽
http://www.software.jpn.org/
ページ最下部「Scenario Editor」

よろしくお願いいたします
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

Re: TreeViewのノードをD&Dで動かしたい など

#2 投稿記事 by hira »

こんにちは、とりあえず上半分。

他からのドロップを受け入れるだけなら、APIの DragAcceptFiles を呼び出せばいける…かもしれません。
(数年間APIから離れているので自信無いです)
但し画像そのもの(≠画像ファイル)をドロップしたいとかだとOLEドラッグ&ドロップを実装しないといけないので、かなり難易度が上がってしまいます。

TreeViewからドラッグを仕掛けるとき(アイテムを動かすとき)は、ウィンドウメッセージを処理してうんぬんかんぬん…ですね。
http://www.interq.or.jp/chubu/r6/masm32 ... 19_Jp.html
↑の中ほどにある内容がちょっと参考になりそうです。
プログラミング言語は違えど、ウィンドウメッセージは共通ですので。
水波形
記事: 106
登録日時: 2009年3月29日(日) 15:45
連絡する:

#3 投稿記事 by 水波形 »

お返事遅くなりました。

ご返信有難う御座います。
TreeViewからドラッグを仕掛けるとき(アイテムを動かすとき)は、ウィンドウメッセージを処理してうんぬんかんぬん…ですね。
http://www.interq.or.jp/chubu/r6/masm32 ... 19_Jp.html
↑の中ほどにある内容がちょっと参考になりそうです。
こちらをしたかったので、参考にさせていただいたのですが1番から躓いてしまいました。

ユーザがアイテムをドラッグしようとしたら、ツリービューコントロールはTVN_BEGINDRAG通知を親ウィンドウに送信する。
と、サイトさんの方にあるのですが、MainWndのコールバック関数に

コード: 全て選択

If dwMsg = TVN_BEGINDRAG Then
処理
End If
のように書いても、実行されません。
これは申し訳ないのですが、どう処理すればいいのでしょうか……?

すいませんが、ご教授ください。
お願い致します。
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#4 投稿記事 by 7 »

4年近くPCなしのブランク期間があるため適当ですが勘弁してください。

コモンコントロールは WM_NOTIFY が重要だった記憶があるということで、「TVN_BEGINDRAG WM_NOTIFY」でググって出てきた最初のページで解決しそうです。

http://yamatyuu.net/computer/program/sa ... eview.html
返信する