C++ MFC 에서의 Picture Control 드래그 방법 기초

조회수 2252회

Picture control m_pic을 CRect 형태로 받아와서 해당 좌표 내 마우스 클릭 후 Mouse Move 시 m_pic의 좌표를 갱신하고 RedrawWindow(); 를 사용하여 다시 그려주도록 했는데 미동도 안하고 안보이는곳에 좌표만 움직이네요 ㅠ Picture Control 이 이동할 방법은 없나요 답변 주시면 감사드리겠습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 마우스 클릭 이벤트에서 아래와 같이 구현해보세요

    void OnLButtonDown(UINT nFlags, CPoint point)
    {
        CRect rc;
        m_Pic.GetClientRect(&rc);
        rc.MoveToXY(point);
        m_Pic.MoveWindow(rc);
    }
    

    드래그 할 때 움직이도록 하려면 LButtonDown Event에서 bDragFlag 를 true로 변경하고, MouseMove Event에서 bDragFlag 값이 true 일 때 위에 있는 코드로 m_Pic의 위치를 변경하도록 하고, LButtonUp 에서 bDragFlag를 다시 false 로 셋팅하도록 구현하시면 됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)