ピクチャーにドラッグ&ドロップ

[戻る]
gon 2004/01/20(火) 10:29:55
質問させてください。
AppWizard から CFormView を基本クラスにした
SDI のスケルトンを用意してプログラムを書いています。

ダイアログ内に配置した「ピクチャー」コントロールに
画像ファイルをドラッグ&ドロップしたら、そこに
画像を表示する、というプログラムを書きたいのですが、
ピクチャーの拡張スタイルに「ドラッグドロップを許可」
と指定しても、実行してみると、ピクチャーの枠内に
ドラッグ&ドロップすることができません。(禁止マーク)

ピクチャー本体は枠だけで、内側は対象範囲にならない
のかと思い、PreTranslateMessageを追加して、
WM_DROPFILESメッセージが来たら、マウス位置
を取得し、そのピクチャーの領域内であるかを判断して
処理を行うという方法も考えたですが、そもそも、
ピクチャーの領域内でドラッグ&ドロップ自体ができず
WM_DROPFILESが投げられないので、解決になっていませんでした。

どなたか、このような動作を実装するための方法を
知っている方がいらしたら、ご教授お願いします。

gon 2004/01/20(火) 10:32:45
すみません、開発環境を書き忘れました。
VC++6.0/WinXP です。よろしくお願いします。

dairygoods 2004/01/20(火) 11:03:42
試してみましたが、普通にドロップできますよ。
・MFC AppWizard > SDI > CFormView
・フォームにピクチャーを貼り付ける
・拡張スタイル「ドラッグドロップを許可」にチェック
・ビルドして実行

VC++6.0 SP5 WinXP

gon 2004/01/20(火) 12:56:27
[[解決]]
すみません、自己解決しました。
実は、グループボックスの中に、ピクチャーを
配置していたのですが、グループボックスの方が
順序的に上に来ており、そちらにドロップされて
いた、というのが原因でした。

> dairygoods さん
どうもありがとうございました。

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