2013-11-27 5 views
0

저는 MFC를 처음 사용합니다. 라인 그리기 및 MFC에서 낙서하는 방법을 알고 있습니다. CDC 및 LineTo() 및 MoveTo() 같은 일부 기능을 사용하여이 작업을 수행합니다. 또한 필자는 FillRect()와 Rectangle()을 가지고 있는데, 사각형이나 다각형을 뷰에 드래그하려고합니다. 바탕 화면에 아이콘을 드래그하는 것과 같습니다.MFC에서 다각형을 드래그하는 방법은 무엇입니까?

첫 번째 단계는 영역을 가져 오는 것입니다. 그런 다음 이전 폴리곤을 지우고 마우스를 움직이면 마우스가 움직이는 지점에 따라 같은 다각형이 그려집니다. 그래서 MSDN에서 지역을 검색하고 지역 클래스와 CRgn 클래스를 얻었습니다.하지만이 두 클래스를 살펴보기 전에 올바른 방향인지 여부를 알고 싶습니다.

MFC를 배우는 방법에 대한 제안이 더 필요합니다. 실제로 필요한 것은 다각형 그리기에 관한 숙제를 끝내고 끌고 라인으로 연결하는 것입니다. 그리고 나 자신과 MSDN 모두가이 숙제를 끝내기를 바랍니다. MSDN이 그렇게 할 수 있습니까?

+0

다각형을 처음 그릴 때 다각형 점을 프로그램의 어딘가에 저장 한 다음 마우 스, 마우스 업과 마우스 이동을 처리하여 그릴 필요가있는 오프셋을 찾습니다. 새로운 위치. 그리기 도중 원본 점에 오프셋을 추가하면 .... 아이디어를 얻을 수 있습니까? –

+0

MFC 샘플 DRAWCLI를 확인하십시오. –

답변

0

CDC :: Polyline 함수는 LineTo 및 MoveTo를 사용하는 것보다 훨씬 빠르게 다각형을 그립니다.

영역이 필요하지 않으므로 이전 다각형을 지울 필요가 없습니다. 대신 OnDraw보기에서 모든 것을 그릴 필요가 있습니다. 마우스로 변경하려는 사항은 다각형을 나타내는 좌표 배열을 변경 한 다음 Invalidate를 호출해야합니다. 즉, 마우스 메시지 핸들러를 그려서는 안됩니다. 마우스 메시지 핸들러에서 무효화를 호출하면 나중에 호출 할 OnDraw가 발생하고 전체 뷰를 다시 그려야합니다.

관련 문제