0

アプリ内の別のアプリケーション/ウィンドウが以前に設定したデータに貼り付けられるのを検出する必要があるため、ソースウィンドウからデータを削除できます。COleDataSource::DelaySetData 理論的にはこれを行い、貼り付けが発生したときに呼び出されることを発見しましCOleDataSource::OnSetDataたが、確信が持てません。MSDNは(いつものように)この問題について曖昧であり、どちらか一方を明確に述べていません。私はカスタム形式を使用し、watever形式はエクスプローラーがカット/ペーストファイルに使用しています。したがって、問題は、これを正確に(理論的にではなく)どのように実行できるかということです。アイテムが別の場所に貼り付けられている場合にのみ、ウィンドウからアイテムを削除する必要があります。

4

1 に答える 1

0

あなたはそれをすべて間違っています。何かをカットすると、すぐに削除されるはずです。元に戻す必要がある場合は、元に戻す機能を提供する必要があります。

クリップボードは、双方向信号用に設計されていません。DelaySetData は、大量のデータをさまざまな形式で送信するアプリケーションを対象としているため、受信者が必要とする形式のみを提供する必要があります。ペーストが発生したことを検出するためにそれを使用することは、副作用に依存しています。これが失敗する可能性のあるクリップボードマネージャーがあります。

于 2011-04-14T14:56:29.607 に答える