いつも楽しく拝見させていただいております。
現在簡単なエクスプローラ(ファイラ)を作成しようと思い、プログラム構成や知識不足でネックに
なる部分をいろいろ考えています。
そこで浮上した問題の一つが、ウィンドウ外へのD&Dの方法です。
一般的な手法があればいいのですが・・・・
一応ウィンドウ内でのD&Dは嗜んだことがあり、
SetCapterを行い、カーソルがウィンドウ外で出たらカーソルを変える所までは出来るのですが、問
題はその後です。
自分で考えた感じでは、
カーソル位置のウィンドウ(またはデスクトップ)をどうにか取得し、そのウィンドウがD&Dを許
可していない場合、D&D不可アイコンをカーソルにして、D&Dを許可していたら左クリックを離
した時になにかしらの処理をする(SendMessage?)
という感じです。
聞きたいことがはっきりしませんが、一応がんばってまとめてみました。
・ウィンドウ外へのD&Dの詳しい手順(一般的な方法があればそれを)。
もしくは、
・カーソル位置のウィンドウの取得方法。
・ドロップしたウィンドウにD&Dのメッセージを送る方法。
です。
よろしくお願いします。
一応開発環境書いた方がいいですかね?
WindowsXP
VS.net 2005 Pro(VC8)
Win32
MFC:使ってない
OLE Drag&Drop を使うのが比較的簡単だと思います。
http://msdn.microsoft.com/library/en-us/com/html/d4a57956-37ba-44ca-8efc-
bf617ad5e77b.asp
この機能を使うと、カーソル位置判定、メッセージ送信などの
ややこしい部分はシステムが全部やってくれます。
主要クラス IDropTarget/IDropSource/IDataObject 等を
キーワードにして情報を探してみてください。
MFC のソースを見てみるのもよいかも知れません。
こんなのもみつけました。
http://forums.belution.com/ja/vc/000/220/92s.shtml
dairygoodsさん回答ありがとうございます。
なかなか難しいですね。
解決してませんが、解決しそうなので解決にチェックを入れておきます。
とりあえず勉強は後回しにして、
このサイトのソースコピペと微修正いけるかも
http://hp.vector.co.jp/authors/VA016117/oledragdrop1.html
ご協力いただいたみなさま(一人だが)ありがとうございました。