2016-04-29 14 views
0

私はファイルをドロップするウィンドウを持っています。私がしたいのは、ユーザーが自分のデスクトップ上に何かをドラッグし始めると、ウィンドウの外観を変更することができるということです。グローバルドラッグイベントを検出するにはどうすればよいですか?

私はウィンドウからグローバルイベントを捕捉する必要があります。このイベントはGiveFeedBackと呼ばれています(https://msdn.microsoft.com/en-us/library/system.windows.forms.control.givefeedback(v=vs.110).aspx)と思いますか?しかし、Qtでどのように検出できますか?

おかげ

+0

私はあなたが何を得ているのかを見ていると思いますが、もう少し詳細を追加して、あなた自身が問題を解決しようとしていることの例を、 MSのドキュメントと推測しようとする。 –

+0

私は自分のデスクトップ上に小さなフレームなしのウィンドウを持っています。ユーザーがデスクトップ上に何かをドラッグし始めたときに、この小さなウィンドウの外観を変更することができます(たとえば、「DROP HERE」)。私が持っている問題は、それがグローバルな出来事なので、それをどうやって行うのか分からないということです。私はある種の「ドラッグを開始する」イベントを検索し、上記のリンクを見つけましたが、私はそのようなものを使用したことがないので、何をするべきかわかりません。 – Megatron300

+0

は、[ネイティブイベントフィルタ](http://doc.qt.io/qt-5/qcoreapplication.html#installNativeEventFilter)を使用して 'windows_generic_MSG'イベントをチェックしている可能性があります。あなたは 'QAbstractNativeEventFilter'をサブクラス化して、少なくともQt5で独自の 'winEventFilter'を提供する必要があります。 –

答えて

0

あなたはマウスイベントをウィンドウのフックを設定し、潜在的なドラッグのために外を見ることができ/ドロップまたはその代わりに、他の実行中のプロセス(特に素敵ではない)から、ウィンドウのメッセージprocsの上にフックを追加します。

UACがこの機能を停止することがあります。

参照: SetWindowsHookEx

も、このためのいくつかのCOMインターフェイスがあるかもしれません。しかし、ドラッグが始まるとイベントが発生しないことがあります。 RegisterDragDropを参照してください。

+0

これはコメントであり、答えではありません。 –

関連する問題