Here is the code to draw a line by mouse dragging in MFC
I am not putting entire code if anyone wants please let me know.
Please use the logic from the below code.
//Mouse Move Event
void CMouseDlg::OnMouseMove(UINT nFlags, CPoint point)
{
if((nFlags & MK_LBUTTON)==MK_LBUTTON)
{
CClientDC dc(this);
if(m_bRedPen == 1) //flag if you select red pen
{
CPen rPen(PS_SOLID,2,RGB(255,0,0));
dc.SelectObject(&rPen);
dc.MoveTo(m_iPrevX,m_iPrevY);
dc.LineTo(point.x,point.y);
}
if(m_bGreenPen == 1)
{
CPen gPen(PS_SOLID,2,RGB(0,255,0));
dc.SelectObject(&gPen);
dc.MoveTo(m_iPrevX,m_iPrevY);
dc.LineTo(point.x,point.y);
}
if(m_bBluePen == 1) //flag if you select blue pen
{
CPen bPen(PS_SOLID,2,RGB(0,0,255));
dc.SelectObject(&bPen);
dc.MoveTo(m_iPrevX,m_iPrevY);
dc.LineTo(point.x,point.y);
}
if(m_iEraser == 1)
{
CPen erPen(PS_SOLID,10,RGB(255,255,255));
dc.SelectObject(&erPen);
dc.MoveTo(m_iPrevX,m_iPrevY);
dc.LineTo(point.x,point.y);
}
m_iPrevX=point.x;
m_iPrevY=point.y;
}
CDialog::OnMouseMove(nFlags, point);
}
//Mouse left button click capture the current co-ordinate
void CMouseDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
m_iPrevX=point.x;
m_iPrevY=point.y;
CDialog::OnLButtonDown(nFlags, point);
}
//Red Pen Function Definition
void CMouseDlg::OnPenRedpen()
{
m_bRedPen=1;
m_bBluePen=0;
m_bGreenPen=0;
m_iEraser = 0;
}
//Blue Pen Function Definition
void CMouseDlg::OnPenBluepen()
{
m_bRedPen=0;
m_bBluePen=1;
m_bGreenPen=0;
m_iEraser = 0;
}
//Green Pen Function Definition
void CMouseDlg::OnPenGreenpen()
{
m_bRedPen=0;
m_bBluePen=0;
m_bGreenPen=1;
m_iEraser = 0;
}
//Exit the Application
void CMouseDlg::OnFileExit()
{
OnCancel();
}
void CMouseDlg::OnDisable()
{
m_bRedPen=0;
m_bBluePen=0;
m_bGreenPen=0;
}
void CMouseDlg::OnEraser()
{
m_iEraser = 1;
m_bRedPen=0;
m_bBluePen=0;
m_bGreenPen=0;
}