![]()
前回までに作成したソースコードでは画像は表示される。しかしウインドウサイズを変えると画像がちらついてしまった。
BEGIN_MSG_MAP(CImageViewerView) MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd) MESSAGE_HANDLER(WM_PAINT, OnPaint) MESSAGE_HANDLER(WM_CREATE, OnCreate) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) END_MSG_MAP()
//背景描画(何もしない)
LRESULT OnEraseBkgnd(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
return 0;
}
![]()
これで実行するとウインドウサイズを変えてもちらつきなくスムースに表示できるようになった。
今回のWM_ERASEBKGNDが使われないようにする、という方法は画像表示ソフトに限らず様々な場面で利用されている。
![]()
ちなみに画像を描画するためのOnPaint()が動かないようにすると...背景が描画されないため、ウインドウサイズを変えると枠の部分が残って変な描画内容になる。
