none
동그란 형태의 영역 체크하기 RRS feed

  • 질문

  • 동전 모양의 원을 여러개를 그려놓고 마우스로 클릭해서 이동해야하는데 CRect 로 영역을 체크했더니 원 근처의 영역을

    클릭해도 원이 클릭이되어 버립니다 ㅜ.ㅜ 미세한 차이나 이러면 안될듯한데

    원 내부만 체크할려면 어떻게 해야하나요?


    • 편집됨 페스티벌 2012년 7월 26일 목요일 오후 4:22
    2012년 7월 26일 목요일 오후 4:06

답변

  • CRect 클래스 대신 CRgn 이라는 클래스를 사용하시면 됩니다. CRgn 클래스의 멤버 함수중에 CRect 처럼 사각형 좌표를 주면
    그 사각형에 내접하는 원을 그리고 그 영역만큼만 체크하는 CreateEllipticRgn 이라는 함수가 있습니다.

    원을 그릴때 Ellipse 함수를 사용했을것 같은데, Ellipse 도 사각형 좌표를 주고 해당 사각형애 내접하는 원을 그리는 형태라서
    두 영역이 동일할 것입니다. 사용법에 대해서 다시 적는것보다 제가 예전에 정리한 글이 있으니 해당 글을 링크해드리겠습니다.
    아래의 링크를 참고하시기 바랍니다.

     

    http://www.tipssoft.com/bulletin/tb.php/FAQ/644

    • 답변으로 표시됨 페스티벌 2012년 7월 26일 목요일 오후 4:54
    2012년 7월 26일 목요일 오후 4:25
    중재자

모든 응답

  • CRect 클래스 대신 CRgn 이라는 클래스를 사용하시면 됩니다. CRgn 클래스의 멤버 함수중에 CRect 처럼 사각형 좌표를 주면
    그 사각형에 내접하는 원을 그리고 그 영역만큼만 체크하는 CreateEllipticRgn 이라는 함수가 있습니다.

    원을 그릴때 Ellipse 함수를 사용했을것 같은데, Ellipse 도 사각형 좌표를 주고 해당 사각형애 내접하는 원을 그리는 형태라서
    두 영역이 동일할 것입니다. 사용법에 대해서 다시 적는것보다 제가 예전에 정리한 글이 있으니 해당 글을 링크해드리겠습니다.
    아래의 링크를 참고하시기 바랍니다.

     

    http://www.tipssoft.com/bulletin/tb.php/FAQ/644

    • 답변으로 표시됨 페스티벌 2012년 7월 26일 목요일 오후 4:54
    2012년 7월 26일 목요일 오후 4:25
    중재자
  • tipsware 님 글에 ^^ 첨언하자면. CreateEllipticRgn 은 Win32 API 레벨에서도 제공됩니다.

    CreateEllipticRgn function
    ; http://msdn.microsoft.com/en-us/library/windows/desktop/dd183496(v=vs.85).aspx

    그리고, 영역 체크 역시 마찬가지입니다.

    PtInRegion function
    ; http://msdn.microsoft.com/en-us/library/windows/desktop/dd162883(v=vs.85).aspx

    2012년 7월 27일 금요일 오전 4:30