15,978
社区成员
发帖
与我相关
我的任务
分享void CDraw_dlgDlg::OnMouseMove(UINT nFlags, CPoint point)
~~void CDrawDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
Graphics graphics(dc.m_hDC);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);//抗锯齿
CRect rect;
GetClientRect(&rect);
CPen pen(PS_SOLID,3,RGB(0,255,0));
pOldPen = dc.SelectObject(&pen);
if (m_btIsLbtDown==TRUE)
{
//GDI 鼠标移动绘图没有明显的间断,但是周边有毛刺(由于没有抗锯齿功能,于是换到GDI+)
// dc.SelectObject(&pen);
// dc.MoveTo(m_ptOrigin);
// dc.LineTo(point);
/*GDI+ 鼠标移动绘图没有明显的间断,但是周边可以抗锯齿(SetSmoothingMode),DGI没有这个功能
当画笔宽度为1时,正常; 当画笔变大时,DrawLine画图相当于用一根“线段”来画图,画出来的线的周边出现缺口*/
graphics.DrawLine(&Pen(Color(200,255,255,255),9),m_ptOrigin.x,m_ptOrigin.y,point.x,point.y);
m_ptOrigin = point;
}
dc.SelectObject(pOldPen);
CDialog::OnMouseMove(nFlags, point);
}void CDrawDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
Graphics graphics(dc.m_hDC);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);//抗锯齿
CRect rect;
GetClientRect(&rect);
CPen pen(PS_SOLID,3,RGB(0,255,0));
pOldPen = dc.SelectObject(&pen);
if (m_btIsLbtDown==TRUE)
{
//GDI 鼠标移动绘图没有明显的间断,但是周边有毛刺(由于没有抗锯齿功能,于是换到GDI+)
// dc.SelectObject(&pen);
// dc.MoveTo(m_ptOrigin);
// dc.LineTo(point);
/*GDI+ 鼠标移动绘图没有明显的间断,但是周边可以抗锯齿(SetSmoothingMode),DGI没有这个功能
当画笔宽度为1时,正常; 当画笔变大时,DrawLine画图相当于用一根“线段”来画图,画出来的线的周边出现缺口*/
graphics.DrawLine(&Pen(Color(200,255,255,255),9),m_ptOrigin.x,m_ptOrigin.y,point.x,point.y);
m_ptOrigin = point;
}
dc.SelectObject(pOldPen);
CDialog::OnMouseMove(nFlags, point);
}