GSI

마우스가 해당 View의 영역 밖으로 나갈때 처리 방법.

해당 View의 영역에 커서가 위치할 때랑 커서가 밖으로 나갔을때 다르게 처리 하고 싶을때가 발생한다. 이때는 SetCursor를 이용하면 된다.

즉, 해당 어플리케이션의 MainFrame 에서 SetCursor 부분에서 해당 View의 클래스 포인터의 값을 비교해서 처리 하면 된다.

코드는 아래와 같다.
BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
 if( pWnd == g_PixelMapView )
 {
 }
 else // 해당 포인터가 다를 경우, 즉 다른 윈도우일 경우...
 {
  if( g_PixelMapView )
   g_PixelMapView->OutCursorDCxRop();
 }
 return CFrameWnd::OnSetCursor(pWnd, nHitTest, message);
}

이때 한가지 문제점은 있다. 마우스가 갑자가 해당 메인 프레임 밖으로 이동하게 되면
이 함수는 호출 되지 않는다. 그정도를 감안한다면 이 코드도 괜찮을듯 하다.
Posted by gsi
: