비트맵 다룰줄몰라서 엄청 헤맸는데
엄청 쉬운 법 발견...ㅋㅋㅋ
일단 배경 사각형을 그리려면 onpaint()를 오버라이딩해서
void sdf::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 여기에 메시지 처리기 코드를 추가합니다.
CPen pen;
pen.CreatePen(PS_SOLID ,1,RGB(0,0,0));
dc.SelectObject(pen);
dc.MoveTo(CPoint(50,50));
dc.LineTo(CPoint(250,50));
dc.MoveTo(CPoint(250,50));
dc.LineTo(CPoint(250,250));
dc.MoveTo(CPoint(250,250));
dc.LineTo(CPoint(50,250));
dc.MoveTo(CPoint(50,250));
dc.LineTo(CPoint(50,50));
}
하면 사각형이 그려진다~
마우스를 클릭해서 움직이면 그림이 그려지게 하려면??
뭐 로직은 사람마다 다르겠지만
왼쪽 버튼 누를때 flag, 왼쪽버튼 뗄때 flag설정하여
mousemove를 오버라이딩해버리면 된다
void sdf::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
isdraw = true;
m_StartPoint = point;
// TODO: 여기에 메시지 처리기 코드를 추가합니다. //todo
CDialog::OnLButtonDown(nFlags, point);
}
void sdf::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
//m_EndPoint = point;
isdraw = false;
CDialog::OnLButtonUp(nFlags, point);
}
void sdf::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
if(isdraw)
{
m_EndPoint = point;
CClientDC dc(this);
CPen pen;
pen.CreatePen(PS_SOLID ,1,RGB(255,0,0)); //펜 색을 빨간색으로
dc.SelectObject(pen);
dc.MoveTo(m_StartPoint);
dc.LineTo(m_EndPoint);
m_StartPoint = m_EndPoint;
//그리기
}
CDialog::OnMouseMove(nFlags, point);
}




