ドラッグ&ドロップ

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Taro

ドラッグ&ドロップ

#1 投稿記事 by Taro »

ドラッグ&ドロップイベントの取り方を教えてください。

ウィンド全体へ許可してのイベントは取得できましたが、Buttonに限定しての取得ができません。

ウィンドの拡張スタイル ドラッグ&ドロップのチェックを外し、CommandButton1の拡張スタイル ドラッグ&ドロップのチェックをONにしても、ButtonのイベントコードはClickとDbClickしか表示せずにDropFileのイベント記載ができません。
また、MainWnd_DropFiles()にもイベントがきません。

どうすれば取れますか?
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

MainWndProc内で頑張ってDropFilesイベントを取得して、GetCursorPosとScreenToClientでマウス座標を取得して分岐するとかそういう手段を昔使用しました。
dwMsg=WM_DROPFILESの時hDrop=wParamです。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
Taro

#3 投稿記事 by Taro »

どうも。
分岐するのでは、マウスポインターでD&D可能な場所判別が付かないんですょ。
サブクラス化すれば出来そうなので調べていますが、よく分かりません。 
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#4 投稿記事 by 7 »

> 分岐するのでは、マウスポインターでD&D可能な場所判別が付かないんですょ。
DragAcceptFiles()関数を使ってみてはどうでしょう?
Taro

#5 投稿記事 by Taro »

試してみました。

コード: 全て選択

DragAcceptFiles(hMainWnd,TRUE)
ボタン部以外の場所へのD&DはDropFilesイベントが上がりますが、ボタン部でのD&Dではイベントが上がりません。
またマウスポインターでのD&D可能場所の判断もできません。

下記では、マウスポインターは期待通りですが、D&Dのイベントを受け取れません。
(コードが有っても、無くても同じ状況です)

コード: 全て選択

DragAcceptFiles(GetDlgItem(hMainWnd,CommandButton1),TRUE)
Tomorrow
記事: 72
登録日時: 2005年6月04日(土) 10:09

#6 投稿記事 by Tomorrow »

前作ったプログラムから切り貼りして作ってみました。
サブクラス化を使って実装したものです。
エディットボックス用ですが、参考にしてみてください。

http://www.2chab.net/uploader/src/up0054.zip
Taro

#7 投稿記事 by Taro »

EditBox1を消しButton1を貼り付けてドラッグ&ドロップ許可し下記のコードで動きました。
(D&Dを表現する手段が無かったので、Static1に表示してみました。)
ありがとうございました。
返信する