• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MFCでネガポジ変換)

MFCでネガポジ変換

このQ&Aのポイント
  • MFCを使用してネガポジ変換を行うプログラムを作成しました。
  • プロジェクトのCChildView.cppのOnPaint関数に実装しました。
  • VC++2008ではウィンドウが白黒の縞模様になり、VC++2005ではウィンドウが真っ黒になる違いがあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

OnPaintで何もしなかった場合は 真っ白になるのでしょうか? if ( c != COLOR_INVALID )をコメントアウトしても同じですか? OnPaintがはじめて呼ばれたときは真っ白に塗るだけにして Invalidateをかけてみるとか ・・・

nikoru222
質問者

補足

>OnPaintで何もしなかった場合は 真っ白になるのでしょうか? 真っ白になります。 >if ( c != COLOR_INVALID )をコメントアウトしても同じですか? 同じです。

その他の回答 (2)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.3

>自分のPCで(2008)作ったプロジェクトを知人のPC(2005)で実行してもらいましたが、知人のPCではうまくいったみたいです。 だとすると、VCの問題ではなくて、他の環境(OSとかグラフィックボードとか)の問題のように思えます。 いずれにせよ、OnPaint内で、PaintDCからGetPixelして同じ場所にSetPixelしても、プログラムとしては意味がない(真っ黒が画面を作るのが目的ではないでしょう?)ので、そこの設計を直すほうが、原因を追求するより早いように思えます。

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

paintDCからGetPixelするのがそもそも間違いなのかも。 >違いはおそらく2008か2005かということだけ何のです。 知人の方のPCで、あなたのPCで作ったプログラムを実行したり、知人の方のPCで作られたプログラムをあなたのPCで実行したりはしてみましたでしょうか?

nikoru222
質問者

補足

自分のPCで(2008)作ったプロジェクトを知人のPC(2005)で実行してもらいましたが、知人のPCではうまくいったみたいです。

関連するQ&A