MFC课程论文

MFC课程论文

ID:47487153

大小:79.00 KB

页数:18页

时间:2020-01-12

MFC课程论文_第1页
MFC课程论文_第2页
MFC课程论文_第3页
MFC课程论文_第4页
MFC课程论文_第5页
资源描述:

《MFC课程论文》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《MFC编程及应用》课程设计报告题目:直线和曲线的绘制与计算器的编制时间:2011年6月8日评语:一.直线和曲线的绘制程序1.程序的功能简介本程序是单文档程序,程序的功能是按下鼠标左键可以画红色的直线,按下鼠标左键并同时按下SHIFT键可以画任意黑色的曲线。可以利用菜单对已存储的直线进行删除,在程序退出时,会提示对文档进行保存(只保存绘制的直线,曲线不予保存),可以将之前保存的图形重新绘制出来。2.程序的设计思路和实现方法(1)对直线和曲线的绘制是在视图类中完成的在视图类里定义了四个私有成员变量:intm_nDraw;//显示画线状态,1表示画线,0表示不画线,

2、在视图类的构//造函数里初始化赋值为0HCURSORm_hCursor;//光标句柄,改变画线时的光标形状CPointm_posOld;//当前鼠标位置(画线终点坐标)CPointm_posOrigin;//鼠标起始位置(画线起点坐标)添加鼠标左键按下的消息响应函数,代码为voidCNie_homeworkView::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultm_posOld=point;//画线的起点和终点位置都m_pos

3、Origin=point;//初始化为鼠标按下的位置this->SetCapture();//连续跟踪鼠标消息m_nDraw=1;//开始画线m_hCursor=AfxGetApp()->LoadStandardCursor(IDC_CROSS);//设置画线的光标为十字形RECTtheRect;GetClientRect(&theRect);//得到视图窗口的客户区大小ClientToScreen(&theRect);//进行坐标转换ClipCursor(&theRect);//只在客户区显示光标CView::OnLButtonDown(nFlags,poin

4、t);}添加鼠标移动消息响应函数,代码为:voidCNie_homeworkView::OnMouseMove(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultSetCursor(m_hCursor);//使用十字光标画线CClientDCdc(this);//产生当前窗口的设备对象if(m_nDraw)//画线状态为1时,画线{CPenNewPen,*pOldPen;NewPen.CreatePen(PS_DASH,1,RGB(255,0,0));//产生

5、一个像素宽的红色虚线画笔pOldPen=dc.SelectObject(&NewPen);//将当前画笔设置为刚刚产生的画笔属性if(nFlags&MK_SHIFT)//按下SHIFT键时,画任意曲线{dc.MoveTo(this->m_posOld);dc.LineTo(point);//从终点继续画线this->m_posOld=point;//将鼠标位置赋给终点}else//画直线{dc.SetROP2(R2_WHITE);//设置画笔颜色为白色dc.MoveTo(m_posOrigin);dc.LineTo(m_posOld);//从起点到终点画直线dc

6、.SetROP2(R2_COPYPEN);//使用画笔颜色dc.MoveTo(m_posOrigin);dc.LineTo(point);//从起点到鼠标位置画直线m_posOld=point;//把鼠标位置赋给终点}dc.SelectObject(pOldPen);UpdateWindow();//通知视图窗口更新}CView::OnMouseMove(nFlags,point);}在鼠标左键放开时,完成直线或曲线的绘制。添加鼠标左键放开的消息响应函数:voidCNie_homeworkView::OnLButtonUp(UINTnFlags,CPointpo

7、int){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCClientDCdc(this);SetCursor(m_hCursor);//使用十字光标画线CPen*pOldPen;CPenNewPen(PS_SOLID,1,RGB(255,0,0));pOldPen=dc.SelectObject(&NewPen);dc.SetROP2(R2_NOT);//设置画笔颜色为与画板相反的颜色if(nFlags&MK_SHIFT)//按下SHIFT键时,画任意曲线{dc.MoveTo(this->m_posO

8、ld);dc.LineT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。