[C++ MFC]PNG、JPEGの画像を表示させてみよう

MFCはボタンの配置やダイアログの表示が目に見えるため、完成形の具体的なイメージがはっきりわかるのはいい点だと思ったが、使い方がめんどくさいです(画像表示などはC#だとめちゃくちゃ簡単です)。

 

特に、画像関係はかなり面倒だと作業してみて思った。

やったこと自体はかなり簡単なのだが、実際にできるまでが大変だった。

 

スポンサードサーチ



C++ MFCで単純な画像表示

f:id:laha:20160430045920p:plain

 

画像表示のボタンを押すと、枠に合わせて画像が表示されるプログラムです。

表示している画像はアイカツ格言のあおい姐さんで、形式はPNG。

調べると、BMPの表示方法は多く出てきたが、他の形式に対してのページがあまりなかったので、PNGでの画像表示に挑戦してみました。

私が試した方法だと、PNG以外にJPEG、GIFの表示は可能だと思います。

 

 

 

ダブルバッファリングを使った画像表示

上のコードでは表示するだけでいまいちなので、もう少しまともに使えそうなコードも書いてみました。

どうして普通に表示するだけではダメなのかというと、ちらつき防止の処理のためです。
通常、画像の拡大や縮小、移動を行う場合、すでに表示されている画像を消し、新たに画像を描画することになります。
しかし、この方法ではすでに表示されている画像を消す→背景だけが表示されている→新たに画像を表示という流れになり背景だけを表示する時間が存在するためちらついて見えてしまいます。

ここでは、一度仮想領域に画像を描画、その仮想領域を表示させたい領域に張り付けて画像表示させる、ダブルバッファリングという方法を用いています。

 

参考書籍

基礎を勉強している、復習したい方向け

C、C++の基礎を修めたので、少し踏み込んだ勉強をしたい方向け