[CHAPTER 02] Visual C++ 2022 MFC 윈도우 프로그래밍 - 연습문제

2023. 5. 12. 09:12기타(이론)/C++ MFC 윈도우 프로그래밍

1. 마우스를 이동하였을 때 마우스를 따라다니면서 마우스의 현재 좌표를 윈도우에 출력하는 프로그램

void CPractice2bView::OnDraw(CDC* pDC)
{
	CPractice2bDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	// TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다.
	// 윈도우 크기를 나타내는 문자열을 윈도우 좌측 상단(10,10)에 출력
	pDC->TextOut(10, 10, m_strWindowSize);
	pDC->TextOut(m_ptMouseMove.x, m_ptMouseMove.y, m_strMouseMove);
	CRect rect;
	GetClientRect(&rect);
	pDC->DrawText(m_strOutput, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}

void CPractice2bView::OnMouseMove(UINT nFlags, CPoint point)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
	if (m_bDrag == TRUE) //마우스가 클릭 된 상태일 때
	{
		m_strOutput = _T("마우스를 드래그하고 있습니다.");
	}
	else //마우스가 클릭되지 않은 상태일 때 
	{
		m_strOutput = _T("마우스를 이동 중입니다.");
	}
	Invalidate();
	CView::OnMouseMove(nFlags, point);

	m_ptMouseMove = point; //연습문제 1-2
	m_strMouseMove.Format(_T("X: %d, Y: %d입니다."), point.x, point.y);
}