こんちはVC++初心者です。
Drag&Dropでファイルを開く方法をご教授お願いします。
環境:Win98 + VC++6.0
MFCでMDI RichEdit版メモ帳もどきを作成中です。
AppWizerdでMFC CRichEditViewを基底クラスにしてMDIにてアプリケーション
を作成しました。
上記の変更のみで、他にウィザード中の設定に変更は加えていません。
状況:
必要なコマンド(書式設定関係、ファイルを開く、保存などのカスタマイズ等など)はできています。
後、Drag & Drop の機能を追加すれば自分で使うだけなので充分なのですが、
1.OnCreateでD&Dを許可
CRichPadsView::DragAcceptFiles(TRUE);
2.WM_DROPFILESを捕まえようと、クラスウィザードにてView に OnDropFiles
を作成してもそこに飛んでこない状態です。
3.親Window、ChildWindowでは可能です。RichEditのみ出来ない。
MSDNのサンプルのWordPadを参考にしようと見てみましたが、やはり同じ現象で、
OLE(貼り付けかリンク?)はできるがファイルを開く事は出来ない仕様みたいです。
サブクラス化してWM_NOTIFYも見てみたが、WM_DROPFILESも、EN_DROPFILESも、
来てないようです?(確信はないですが)
現象としてはRichEditコントロールにカーソルが移動すると、本来はコピーマーク[+]の付いた
カーソルになるはずなのに四角のマークの付いたカーソルなのです。
もっと深いレベルで先にOLE関係でHookされているような気がするのですが、どーしても判りません。VC++のエディタ上にはそのような処理はかかれてなさそうです。
以上ご教授宜しくお願いします。
追記:
MFCでアプリケーションを作成するのは初めてです。猫でもわかる・・・を参考に同様なものを
SDKで一度書いているからMFCではここまではSDKの時よりは楽チンでした。
今回は、印刷プレビューが欲しくて作成しています。
(SDKではサブクラス化でWM_DROPFILESを捕まえています。)
SDKではどのように作成するのか判らないし、MFCでは最初から実装されているから。
どちらを改造するのが早いんですかね?
SDKの方での印刷プレビュー作成の考え方(手順、方法など)もご教授したいただければ有難いです。
ツイート | ![]() |