- PR -

C# ドラッグ&ドロップ中か否か取得

投稿者投稿内容
有末 清華
ベテラン
会議室デビュー日: 2006/10/09
投稿数: 52
お住まい・勤務地: 北海道
投稿日時: 2007-02-10 20:55
現在ドラッグ&ドロップ中か否かを取得しようと思っていますが方法がわかりません。

範囲が自分だけならば変数なり何なりで行えるんですがグローバルフックとともに使っているのであらゆるウィンドウ下でのドラッグ&ドロップ状態を取得したいわけです。

API等で IsInDragMode 見たいなのがあるといいんですが、ご存じないでしょうか?
_________________
有末 清華
crazy(){for;;{you();}} - プログラマの覚書
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2007-02-11 10:05
こんにちは。

引用:

有末 清華さんの書き込み (2007-02-10 20:55) より:
現在ドラッグ&ドロップ中か否かを取得しようと思っていますが方法がわかりません。

範囲が自分だけならば変数なり何なりで行えるんですがグローバルフックとともに使っているのであらゆるウィンドウ下でのドラッグ&ドロップ状態を取得したいわけです。



WM_LBUTTONDOWN…WM_MOVE…WM_LBUTTONUPメッセージが飛んできたからといって、
ドラッグ&ドロップしているとも限らず…

全てのアプリケーションがOLEドラッグ&ドロップで実装しているわけでもなく…

ESCキーや右ボタンでドラッグが中断するかしないかは、アプリケーションによって違うし…


「そんなこと無理」というほうに一票です。
有末 清華
ベテラン
会議室デビュー日: 2006/10/09
投稿数: 52
お住まい・勤務地: 北海道
投稿日時: 2007-02-11 10:30
無理ですか(汗

マウスジェスチャー作ってて、右クリックしてドラッグ範囲を超えたときにジェスチャーを開始するようにしてるんですが、右クリックでアイテムをドラッグするときも同じ動きになりますよね?なんとか見分けたいなと・・・
_________________
有末 清華
crazy(){for;;{you();}} - プログラマの覚書
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-02-13 14:29
無理ですね。
少なくとも「右ボタンダウン+移動」でジェスチャーの開始とするのは。

エクスプローラでファイルを右ドラッグしてみてください。
これをブロックしてしまったらどうなるでしょう?

両手が使える人ならいいですが、何かの理由で片手しか使えない場合は?

さて、ドラッグ中かどうかの判断ですが、基本的にはマウスダウン状態+マウスキャプチャー状態となります。
ただ、この状態だからといってすべてがドラッグ状態にはなりません。

ボタン(普通のボタン。メッセージボックスのOKボタンとかでよい)で、やってみるとわかります。

少なくともこの2つはクリアできないと、グローバルフックでのジェスチャー開始を何らかのアクションでというのは難しいでしょう。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-02-13 18:30
ジェスチャー→ドラッグ なら、できるよ。→StrokeIt など
_________________
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-02-13 19:10
引用:

Jittaさんの書き込み (2007-02-13 18:30) より:
ジェスチャー→ドラッグ なら、できるよ。→StrokeIt など



それでよければ...w
ドラッグ中の動きをジェスチャーの一部としてしまうのはありでしょうねw

それで望む機能が得られるのか?はわかりませんけど。
#おいらなら、何もしてない時に一定の動作をすることでジェスチャーとしますがw
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-02-13 19:53
引用:

とっちゃんさんの書き込み (2007-02-13 19:10) より:
引用:

Jittaさんの書き込み (2007-02-13 18:30) より:
ジェスチャー→ドラッグ なら、できるよ。→StrokeIt など



それでよければ...w
ドラッグ中の動きをジェスチャーの一部としてしまうのはありでしょうねw

それで望む機能が得られるのか?はわかりませんけど。
#おいらなら、何もしてない時に一定の動作をすることでジェスチャーとしますがw


うん、 アプリケーションの中だけでジェスチャーを閉じたい(閉じてもいい)のか、ジェスチャーの方が主体なのか、質問からはわからんから

まあ、ラウンチャーということなので、ドラッグの方が主体だと思うけど
_________________
有末 清華
ベテラン
会議室デビュー日: 2006/10/09
投稿数: 52
お住まい・勤務地: 北海道
投稿日時: 2007-02-14 01:47
ドラッグの取得がしたいってのはドラッグしてるときまで線(ジェスチャーのヘルパー)表示したら汚いなぁっていうのと、ドラッグ中なのにジェスチャーを認識しちゃまずいなって思ったためです。NeuralNetworkなんでフツーに認識しちゃうorz

>>ジェスチャー→ドラッグ なら、できるよ。→StrokeIt など
結構すごいのあったんですね知らなかった。でもこれも八方行ジェスチャーみたい。どうやって丸とか認識してんだろう?


>>#おいらなら、何もしてない時に一定の動作をすることでジェスチャーとしますがw
具体的にどんな意味でしょうか?ちょっと参考になりそうな気がするんで教えていただけないでしょうか?


ぶっちゃけジェスチャーだから使いやすけりゃいいわけで(笑。右クリでジェスチャー開始ってのがなんか一般みたいでそうしてんですが、またこれイロイロと問題でてます(苦笑
_________________
有末 清華
crazy(){for;;{you();}} - プログラマの覚書

スキルアップ/キャリアアップ(JOB@IT)