您现在的位置: 天下网吧 >> 网吧天地 >> 天下码农 >> 微信小程序 >> 正文

在MFC中实现用DC画笔画线条

2008-11-6CFAN整理佚名

    一.  画直线:

    步骤一:在视图类中对WM_LBUTTONDOWN和WM_LBUTTONUP消息添加消息响应函数OnLButtonDown和OnLButtonUp

    步骤二:在视图类中利用添加成员向导添加成员变量。名字,例如m_StartPoint,类型为CPoint,访问属性设置为protected

    步骤三:在OnLButtonDown和OnLButtonUp 中写如下代码:

 void CswdfView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

m_StartPoint=point;
CView::OnLButtonDown(nFlags, point);
}

void CswdfView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//第一种,使用HDC和API函数

/*HDC hdc;
hdc=::GetDC(m_hWnd);
::MoveToEx(hdc,m_StartPoint.x,m_StartPoint.y,NULL);
::LineTo(hdc,point.x,point.y);
::ReleaseDC(m_hWnd,hdc);
CView::OnLButtonUp(nFlags, point);*/


//第二种,使用CDC类

/*CDC *pDC=GetDC();
pDC->MoveTo(m_StartPoint);
pDC->LineTo(point);
ReleaseDC(pDC);*/


//第三种,使用CClientDC

CClientDC aDC(this);
aDC.MoveTo(m_StartPoint);
aDC.LineTo(point);


}

    OK,运行程序,可以画直线了。

    二.  画曲线

    步骤一:按照画直线中介绍的方法在视图类中添加对WM_MOUSEMOVE消息的响应函数OnMouseMove

    步骤二:在OnMouseMove中写如下代码:
 void CswdfView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(nFlags==MK_LBUTTON) //判断鼠标左键是否按下,如果按下,则移动时画线
{
CClientDC aDC(this);
aDC.MoveTo(m_StartPoint);
aDC.LineTo(point);
m_StartPoint=point; //将画线的起点移动到鼠标移动后的点
}
CView::OnMouseMove(nFlags, point);
}

    OK,运行程序,曲线也可以画了,你甚至可以画出一个裸体的MM来~~

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛 https://bbs.txwb.com

关注天下网吧微信/下载天下网吧APP/天下网吧小程序,一起来超精彩

本文来源:CFAN整理 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧 网吧天下