SetDIBits

SetDIBitsは、指定したピクセル列を指定したビットマップハンドルのDDBに反映させるWindowsAPI・・・。

SetDIBits 関数

前回、CreateDIBitmapでDDBにして表示したビットマップのピクセルデータ列に変更を加える・・・。
DDB用の関数ではなく、DIBのピクセルデータを変更し、それを反映させることで更新する・・・。
クリックしたら、太いペンが画像の上から判子のように押される感じ・・・。

WM_LBUTTONDOWNの時、マウスカーソルの位置座標取得・・・。

xが5以上634以下, かつyが5以上474以下の時のみ実行・・・。
ペンがウィンドウからはみ出してしまう場合の処理は、今回やらないので無効にしておく・・・。

カーソル位置の±5ピクセル周辺を黒で塗りつぶすようにピクセルデータを変更・・・。

SetDIBitsでこのピクセル列をhDDBに反映して画面を更新・・・。

f:id:BG1:20151128212525p:plain

最初この状態・・・。
どこかクリックすると、

f:id:BG1:20151128212549p:plain

クリックしたところに黒い矩形ができる・・・。

f:id:BG1:20151128212624p:plain

四角い太い黒ペン・・・。

Sample/SetDIBits.cpp at master · bg1bgst333/Sample · GitHub