SelectClipRgn

SelectClipRgnを使うことで、指定のデバイスコンテキストの描画領域を、指定されたリージョンの部分のみにできる。

SelectClipRgn function (wingdi.h) - Win32 apps | Microsoft Docs

楕円と矩形を結合したリージョンを選択すれば、画像を描画しても結合したリージョンの形に描画される。
(こういうのをクリッピングという。)

WM_CREATEで、

ビットマップのロードとともに、矩形リージョンと楕円リージョンを結合。

WM_PAINTで、

SelectClipRgnでhDCにhRgn1を選択。
これでhDCに描画したものはhRgn1の領域からはみ出ない。
BitBltで画像をhDCに描画すると、

リージョンのところだけ画像が描画される。
リージョンのところだけ画像が描画される。

リージョンのところだけ画像が描画される。

Sample/winapi/SelectClipRgn/SelectClipRgn/src/SelectClipRgn at master · bg1bgst333/Sample · GitHub