- - PR -
VC++.NET2003で遅延ドラッグ&ドロップにいて
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-27 21:06
COleDataSourceから派生クラスを作成し
DelayRenderFileData( CF_HDROP ); してエックスプローラーにドラッグして持っていたらドロップしないうちに すぐに OnRenderFileData が呼び出されます。エクセル等のアプリはドロップした時点で呼び出されます。 エックスプローラーでもドロップした後に呼び出されるようにするには何か 違いがあるのでしょうか?お分かりの方教えてください。 | ||||||||||||
|
投稿日時: 2005-12-28 00:33
こんばんは。
ドラッグ&ドロップの遅延レンダリングですね。 普通はドロップされた直後に、実際のデータに対する問い合わせがあるはずなのですが… wbirdさんの仰る現象は未確認ですので、ハッキリした事はなんともいえないですけれども…
この部分はなんだか、おかしくないですか? #私の思い違いかもしれませんけれども。 wbirdさんは結局どんなデータをドロップしたいのでしょうか? 渡したいデータのフォーマットがCF_HDROPならば… (つまりグローバルヒープに DROPFILES構造体 のデータを渡したいのであれば) DelayRenderFileDataを使うのは間違っているとおもいます。 DelayRenderFileDataは「CFileオブジェクトのデータ」を渡すために使うのですから。 それにCF_HDROPデータをわざわざ遅延レンダリングする必要性も感じにくいのですが。 即時レンダリングで十分じゃないのでしょうか? 逆に、渡したいデータがCFileオブジェクトのデータであれば… (つまりカスタムなクリップボードフォーマットのデータを渡したいのであれば) RegisterClipboardFormat関数で、カスタムフォーマットであることを知らせる必要があるでしょう。 (エクスプローラーやエクセルにはドロップできなくなりますけれども) こんな感じで…
どうでしょうか? | ||||||||||||
|
投稿日時: 2005-12-28 01:06
早速のご返答ありがとうございます。
遅延レンダリングでエックスプローラーにファイルを渡さなければならないのです。 というのもWebサイトからファイルをエックスプローラーにダウンロードするために いたんテンポラリーディレクトリにダウンロードし遅延レンダリングでそのファイルを 渡そうとしています。 |
1