ObjeqtNote #26 ビットマップをピクチャーボックスのサイズにカットして表示

ビットマップが大きいと、ピクチャーボックスが拡大して表示する。
しかし、今回は、ピクチャーボックスのサイズにカットして表示する。

まず、Window.hで、

OnPaintを追加する。

Window.cppでは、

WM_PAINTでOnPaintを呼ぶ。

OnPaintの定義では、特にここでは何もしていない。

CustomControl.cppでは、

Createで位置とサイズの格納。

こちらのDynamicWindowProcでも、WM_PAINTでOnPaintを呼ぶ。

PictureBox.hでは、

ビットマップハンドル、メモリデバイスコンテキスト、サイズなどのメンバを追加し、OnPaintも追加。

PictureBox.cppでは、

OnPaintでBitBltによる再描画を実装。

MainWindow.cppで、

OnCreateのm_pPictureBox->CreateでSS_REALSIZECONTROLを指定する。
これで、コントロールのサイズで画像が表示されるので、大きくならない。
ただし、縮小するわけではなく、その大きさで入らないところはカットされる。

f:id:BG1:20170424162534p:plain

このように、コントロールの大きさ変わらず、画像はカットされて表示される。

・ビットマップをピクチャーボックスのサイズにカットして表示 · bg1bgst333/ObjeqtNote@b50ff10 · GitHub