何らかの理由で、SetCapture 関数を使用すると、PtInRect() 関数が機能しなくなります。
ここにいくつかのコードがあります:
POINT curmouse;
RECT testrect = {0, 0, 200, 200};
WM_LBUTTONDOWN:
if (MK_LBUTTONDOWN == true)
SetCapture(hWnd);
break;
WM_MOUSEMOVE:
curmouse.x = LOWORD(lParam);
curmouse.y = HIWORD(lParam);
WM_LBUTTONUP:
if (PtInRect(&testrect , curmouse))
//Draw Image
注意: WM_LBUTTONUP でキャプチャを解放するための呼び出しを行っていません。実際、 releasecapture が呼び出されることはありません!
setcapture を呼び出さない場合、ptinrect はマウスを離したときに意図したとおりに動作します。
setcapture() が呼び出された状態で ptinrect を動作させる方法を教えてください。
最も重要なことは、このプログラムには 2 つの独立したウィンドウがあることです。最初のウィンドウの名前は bg_window、2 番目のウィンドウは other_window です。