FrameRect

FrameRectで矩形の枠線を描く。

FrameRect 関数 (winuser.h) - Win32 apps | Microsoft Learn

FrameRect.cppで、

こうする。

起動時
起動時

起動時

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

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

右をクリックすると右の方の枠線がグレーに
右をクリックすると右の方の枠線がグレーに

右をクリックすると右の方の枠線がグレーに

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

WM_SETCURSOR

ウィンドウ内でマウスキャプチャされてない時は、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は指定の矩形を指定の量移動する。

OffsetRect 関数 (winuser.h) - Win32 apps | Microsoft Learn

OffsetRect.cppで、

こうする。

ドラッグで矩形を移動できる
ドラッグで矩形を移動できる

ドラッグで矩形を移動できる。

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

PtInRect

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は、マウスキャプチャを失った時に送信されるウィンドウメッセージ。

WM_CAPTURECHANGED メッセージ (Winuser.h) - Win32 apps | Microsoft Learn

WM_CAPTURECHANGED.cppで、

こうする。
マウスをドラッグしていて途中でAlt+Tabを押すと、

アプリ切り替えが出る。
アプリ切り替えが出る。

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

SetCaptureの次にWM_CAPTURECHANGEDが来てる。
SetCaptureの次にWM_CAPTURECHANGEDが来てる。

SetCaptureの次にWM_CAPTURECHANGEDが来てる。

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

ReleaseCapture

ReleaseCaptureでマウスキャプチャを終了する。

ReleaseCapture 関数 (winuser.h) - Win32 apps | Microsoft Learn

ReleaseCapture.cppで、

こうして、

こうする。

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

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

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