FrameRectで矩形の枠線を描く。
FrameRect 関数 (winuser.h) - Win32 apps | Microsoft Learn
FrameRect.cppで、
こうする。

起動時

左をクリックすると枠線がグレーに

右をクリックすると右の方の枠線がグレーに
Sample/winapi/FrameRect/FrameRect/src/FrameRect at master · bg1bgst333/Sample · GitHub
FrameRectで矩形の枠線を描く。
FrameRect 関数 (winuser.h) - Win32 apps | Microsoft Learn
FrameRect.cppで、
こうする。

起動時

左をクリックすると枠線がグレーに

右をクリックすると右の方の枠線がグレーに
Sample/winapi/FrameRect/FrameRect/src/FrameRect at master · bg1bgst333/Sample · GitHub
LoadCursorで、マウスカーソルをロードする。
LoadCursorW 関数 (winuser.h) - Win32 apps | Microsoft Learn
LoadCursor.cppで、
こうする。

変わらないけど、こうも書けるという話。
Sample/winapi/LoadCursor/LoadCursor/src/LoadCursor at master · bg1bgst333/Sample · GitHub
ウィンドウ内でマウスキャプチャされてない時は、WM_SETCURSORが定期的に送られるので、ある領域内はアイコンを変えたいという時は、このタイミングでアイコンを変えたりできる。
WM_SETCURSOR メッセージ (Winuser.h) - Win32 apps | Microsoft Learn
WM_SETCURSOR.cppで、
こうする。

矩形の中にある時は手のアイコンになった。
Sample/winapi/WM_SETCURSOR/WM_SETCURSOR/src/WM_SETCURSOR at master · bg1bgst333/Sample · GitHub
OffsetRectは指定の矩形を指定の量移動する。
OffsetRect 関数 (winuser.h) - Win32 apps | Microsoft Learn
OffsetRect.cppで、
こうする。

ドラッグで矩形を移動できる。
Sample/winapi/OffsetRect/OffsetRect/src/OffsetRect at master · bg1bgst333/Sample · GitHub
PtInRectは、指定の点が指定の矩形内にあるか判定する。
PtInRect 関数 (winuser.h) - Win32 apps | Microsoft Learn
PtInRect.cppで、
こうする。

矩形の中でマウスの左ボタンを押すとキャプチャが開始される。
Sample/winapi/PtInRect/PtInRect/src/PtInRect at master · bg1bgst333/Sample · GitHub
WM_CAPTURECHANGEDは、マウスキャプチャを失った時に送信されるウィンドウメッセージ。
WM_CAPTURECHANGED メッセージ (Winuser.h) - Win32 apps | Microsoft Learn
WM_CAPTURECHANGED.cppで、
こうする。
マウスをドラッグしていて途中でAlt+Tabを押すと、

アプリ切り替えが出る。
この時、マウスキャプチャは失っているので、

SetCaptureの次にWM_CAPTURECHANGEDが来てる。
ReleaseCaptureでマウスキャプチャを終了する。
ReleaseCapture 関数 (winuser.h) - Win32 apps | Microsoft Learn
ReleaseCapture.cppで、
こうして、
こうする。

押したとこから離したとこまでの矩形が描かれる。