お世話になってます、環境はWinXP VC7 MFC Doc/View です。
やりたい事はドキュメントとして仮想のデバイスコンテキストを作成して
その一部の特定エリアをビューに表示したいです
プロジェクト名をTestで作成しCTestDocの変数CDC mDCを宣言しています
それをCTestView内で
pDoc->mDC.CreateCompatibleDC(pDC);//①
として
pDC->BitBlt(0,0,500,500,&(pDoc->mDC),50,50,SRCCOPY);//②仮想DCの(50,50)地点を表
示
としたいのですが
①の段階でエラーが発生します。
mDCをCTestDocの変数ではなく①の直前で宣言した場合は問題なくできるのですが
なぜでしょうか?
情報が少な過ぎます
>pDoc->mDC.CreateCompatibleDC(pDC);//(1)
は CTestView のどこに記述しているのでしょうか?
エラーとはどのようなエラーでしょうか?
実行時のエラーか、ビルド時のエラーかも(なにも書いていないので)判らない
実行時のエラーだとしてどのようなエラーだと言ってきたのですか?
幾つか思い浮かぶ可能性から絞り込めるだけの情報がないので何故かについて適切な
回答が私には出来ません
あと、丸数字は余り使わないほうがいいと思いますので引用では書き換えています
すみません情報不足でした
>pDoc->mDC.CreateCompatibleDC(pDC);//(1)
>は CTestView のどこに記述しているのでしょうか?
CTestViewのOnDrawです。
エラーというのは実行時のものでDebug Assretion Failed!
というメッセージボックスが表示されてアプリが停止するものでした。
それで、どこに記述といわれてきづいたのですが、エラーの原因はOnDraw内で
pDoc->mDC.CreateCompatibleDC(pDC);
としていたため、すでに作成されているmDCを何度も作成しようとしたのが
間違いだったみたいです。
if(pDoc->mDC==0)
pDoc->mDC.CreateCompatibleDC(pDC);
とするとエラーが出なくなりました。
.