TreeviewのノードをD&Dで動かしたい

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

TreeviewのノードをD&Dで動かしたい

#1 投稿記事 by 水波形 »

最近ここの更新が止まってしまい、すごく悲しい水波形です。
AB4.23.00を愛用しています。

Treeviewのノードをドラッグアンドドロップ(D&D)で移動させる方法について質問があります。

コード: 全て選択

TVN_BEGINDRAG
が検知されたらD&Dが開始される事が分かり、

D&Dが終了すると、

コード: 全て選択

WM_LBUTTONUP
が通知されるということがわかったため、Treeviewをサブクラス化しWM_LBUTTONUPを捕まえます。

ここまではうまく行ったのですが、D&Dの対象を知る方法が分かりません。

コード: 全て選択

TVGN_DROPHILITE
を利用すれば良さそう(参考サイト)なのですが、
SendMessageに与える値がよく分かりません。

コード: 全て選択

ターゲットのノードのハンドル = SendMessage(TreeViewのハンドル, TVM_GETNEXTITEM, TVGN_DROPHILITE, D&Dを始めたノードのハンドル)

コード: 全て選択

ターゲットのノードのハンドル = SendMessage(TreeViewのハンドル, TVM_GETNEXTITEM, TVGN_DROPHILITE, D&Dを終えたハンドル)

コード: 全て選択

ターゲットのノードのハンドル = SendMessage(D&Dを始めたノードのハンドル, TVM_GETNEXTITEM, TVGN_DROPHILITE, D&Dを終えたノードのハンドル)

コード: 全て選択

ターゲットのノードのハンドル = SendMessage(D&Dを終えたノードのハンドル, TVM_GETNEXTITEM, TVGN_DROPHILITE, D&Dを始めたノードのハンドル)
というのを試しましたが、返ってくる値はすべて0(失敗)……(参考

これはどのように使えばいいのでしょうか。
ご存じの方がいらっしゃいましたらご教授ください。
よろしくお願いいたします。
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/
たかせ
記事: 215
登録日時: 2006年2月05日(日) 17:10
お住まい: 東京都

Re: TreeviewのノードをD&Dで動かしたい

#2 投稿記事 by たかせ »

Treeviewに関してプログラミングの経験がないのでわかりませんが、
まずはSendMessageの直後にGetLastErrorとFormatMessageを追加してください。
エラー内容を確認することで対応策がみつかるかもしれません。
前向きでない方法ですみませんが。
よろしくおねがいします。
返信する