タブコントロールにドロップするには?

[戻る]
2004/12/03(金) 00:12:53
柚と申します。
今、VC++6の環境で、SDKのみでアプリケーションを作成しています。

ダイアログにタブコントロールを配置し、Aタブ,Bタブと作りました。
そして、Aタブにグループボックスを1つ作り、
そこにドラッグ・ドロップできるように、サブクラス化しました。

それで問題なのは、ファイルをドラッグドロップしようとしても
マウスカーソルすらドロップ可能な形に変更されないことです。

タブコントロールがなく、ダイアログに直接グループボックスを作成した場合は
正常な動作をしていましたし、
また、タブでのこのような形のアプリケーションは見たことがないので、
ひょっとしてタブコントロール上では無理なのかもと疑問も沸いているのですが、
どうでしょうか。

---
タブコントロール
http://home.a03.itscom.net/tsuzu/programing/tips28.htm を参考にしました。

Aタブの子ダイアログ・プロシージャ
case WM_INITDIALOG:
 hGroupBox = GetDlgItem(hWnd, IDC_GroupBox);
 OriginalProc = (WNDPROC)GetWindowLong(hGroupBox, GWL_WNDPROC);
 SetWindowLong(hGroupBox, GWL_WNDPROC, (LONG)NewProc);
 SendMessage(hGroupBox, UserMessage, 0L, 0L);
 return TRUE;

NewProc()
case UserMessage:
 DragAcceptFiles(hWnd, TRUE);
case WM_DROPFILES:
 (ドラッグ・ドロップ処理)
---
処理上、何か足りないのでしょうか・・

どなたかアドバイスなどよろしくお願いいたします。


※
この投稿は以前
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200411/04110069.txt
にてポストしました。
一定の期間を於きましたが、残念ながら解決法がみつからず、困っており、
こちらにマルチポストさせていただく次第です。
「使用上の注意」の注意に従い、
もしこちらでよい結果が得られましたら、責任をもってポスト元にも報告させて頂きます。
失礼を承知で大変申し訳ございません。

SG 2004/12/08(水) 01:48:46
プロパティシートではダメなのでしょうか?
プロパティシートならコンボボックスに対してサブクラス化して
ドロップ出来るようにしたことはあります。
タブの時は自分もいろいろ試したけどうまくいかなかった記憶があります。
似たようなことをしただけですけど。

2004/12/09(木) 18:34:09
[[解決]]
>プロパティシートでは
 実は、実現可・不可は別として、ポスト元でもご提案があり、
 同時進行で調べてみたのですけど、
 OK と キャンセル ボタンは削除できないようなので、
 悩んでいました。

 しかしながら、ポスト元で動作の解析をして頂きまして、
 子ダイアログの親ハンドルがダイアログだとメッセージはタブコントロールに行くことが分かり、
 そのためにWM_DROPFILESを捉えられなかったようです。

回答遅れまして、申し訳ございませんでした。
また、ご情報ありがとうございます。
今後の参考にさせて頂きたく思います。

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