二级C++技巧:MFC实现画线的实现方法

二级C++技巧:MFC实现画线的实现方法,第1张

二级C++技巧:MFC实现画线的实现方法,第2张

1.画直线:
第一步:在view类的WM_LBUTTONDOWN和WM_LBUTTONUP消息中添加消息响应函数OnLButtonDown和onlbuttonup。步骤2:使用添加成员向导在视图类中添加成员变量。例如,m_StartPoint的名称属于CPoint类型,access属性设置为protected
。第三步:在OnLButtonDown和OnLButtonUp中编写以下代码:
void cswdfview::OnLButtonDown(uintnflags,c point)
{
//TODO:在此添加您的消息处理程序代码和/或调用default
m _ start point = point;
CView::OnLButtonDown(nFlags,point);
}
void cswdfview::on lbuttonup(uint n flags,c point)
{
/todo:在此添加您的消息处理程序代码和/或调用default
//第一个使用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-> move to(m _ start point);
pDC-> line to(point);
release DC(pDC);*/
//第三,使用cclientdc
cclientdc ADC(这个);
aDC。MoveTo(m _ start point);
aDC。LineTo(点);
}
好,运行程序,画一条直线。
2。画曲线
第一步:按照画直线
中描述的方法在view类中添加对WM_MOUSEMOVE消息的响应函数onmousemove第二步:在OnMouseMove中编写以下代码:
void CswdfView::OnMouseMove(UINT nFlags,c POINT)
{
/TODO:在此添加您的消息处理程序代码和/或调用default
if(nFlags = = MK _ lbuttonMoveTo(m _ start point);
aDC。LineTo(点);
m _ start point = point;//将画线的起点移动到鼠标移动后的点
}
cview::onmousemove(nflags,point);
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C++技巧:MFC实现画线的实现方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情