Microsoft Word用のアドイン(C#を使用)を作成していて、テキスト/イメージなどを任意のソースからドラッグしてWordにドロップしたときにいくつかの機能を起動したいと考えています。だから基本的に私はWordでドロップイベントをトラップしたい。しかし、私はこれを助けるWord APIを見つけることができません。これで助けてもらえますか?WordでDrag/Dropイベントをトラップする方法は?
1
A
答えて
3
このような獣は存在しません。 DocumentChangeイベントを監視し、変更されたもの( "Selection"の現在の場所に配置される)を監視しようとすると、最高の(簡単な)アプローチが可能です。
メインワードウィンドウをサブクラス化し、ドラッグ/ドロップメッセージが交換されているかどうかを監視し、必要に応じてそれらを傍受することが非常に厄介な方法です。
0
SelectionChangeイベントがこのために使用されることがあります。場合によっては、選択内容にドロップされたコンテンツが含まれているとは限りません。例えば。イメージをドキュメントにドロップするとイメージは選択されません。
0
より良い代替方法は、Wordウィンドウの上にオーバーレイする透過ウィンドウを使用することです。このウィンドウは、ドラッグプロセスが開始され、ドキュメントウィンドウの上に置かれたときに開始されます。 Wordの代わりにドロップ操作がこのウィンドウで受信されるので、何が入ってきたのか、どの場所にドロップされたのかが正確にわかります。これらの位置座標を対応するドキュメントの位置に変換して(RangeFromPoint()
メソッドをWindow
クラスとします)、削除されたデータで必要な処理を行います。この後、透明なウィンドウを隠すだけですべてが正常に戻ります。
ソースコードとこのアプローチの完全な実装は、this excellent MSDN articleで利用できます。
関連する問題
- 1. dragdropイベントでコントロールの参照を取得する方法は?
- 2. DragDropイベント中にListView内のフォーカスされたアイテムを変更する方法は?
- 3. javascriptでダブルキープレスをトラップする方法は?
- 4. ココアのグローバルkeydown/keyupイベントをトラップする方法
- 5. ウィンドウの最小化イベントをトラップする方法はありますか?
- 6. MVVMの方法で単一項目DragDrop WPF Listviewを実装する方法は?
- 7. 階層データを使用したFlexアドバンストデータグリッド:dragdropイベントでcurrentTargetフィールドにアクセスする方法は?
- 8. Word文書アドインのAfterSaveイベントを作成する方法
- 9. すべてのキーストロークではなく、入力変更イベントをトラップする方法はありますか?
- 10. WPF - MouseDoubleClickでDragDropをしない方法は?
- 11. 認証でエラーをトラップする方法はありますか?
- 12. NetOffice Word Addinで新しい文書イベントを聴く方法
- 13. sun.net.ftp.FtpClientでftpの成功/失敗をトラップする方法は?
- 14. Androidサービスクラスでキーボードイベントをトラップする方法は?
- 15. java netbeansで空のjtableをトラップする方法は?
- 16. DragDropイベント内からスレッドにデータを渡す際のスレッディング問題
- 17. jQueryを使用してバックスペースキーをトラップする方法は?
- 18. Ruby TracePoint:特定のクラスの定義をトラップする方法は?
- 19. resourcedictionaryにあるボタンのclickイベントをトラップする
- 20. as3でDragDropクラスを作成する
- 21. Selenium 2 Pythonでポップアップをトラップする方法
- 22. PowerShellで未処理のエラーをトラップする方法
- 23. Rubyプロセスで信号をトラップする方法
- 24. Bashスクリプトで終了コードをトラップする方法
- 25. iOSウェブブラウザでURLをトラップする方法8.1x
- 26. .NET(Excelアドイン)でOutOfMemoryExceptionをトラップする方法
- 27. silverlight4でword/pdfを開く方法は?
- 28. DragDropを使用すると、CheckedListBox内の項目をチェックする方法
- 29. バックグラウンドプロセスでSIGINTをトラップする
- 30. Pythonでエラーをトラップする
私はこれらのオプションを調べようとします。ありがとう! – Mayank
説明したようにドラッグ&ドロップメッセージを傍受することができません。ウィンドウにマウス・フックを設定しましたが、ドラッグ・ドロップのイベントはありません。あなたは助けてもらえますか? – Mayank
DocumentChangeのみ "新しい文書が作成されたとき、既存の文書が開かれたとき、または別の文書がアクティブ文書になったときに発生します。 – Chris