ビットマップが大きいと、ピクチャーボックスが拡大して表示する。
しかし、今回は、ピクチャーボックスのサイズにカットして表示する。
まず、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を指定する。
これで、コントロールのサイズで画像が表示されるので、大きくならない。
ただし、縮小するわけではなく、その大きさで入らないところはカットされる。
このように、コントロールの大きさ変わらず、画像はカットされて表示される。
・ビットマップをピクチャーボックスのサイズにカットして表示 · bg1bgst333/ObjeqtNote@b50ff10 · GitHub