visual c++ mfc图形绘制

visual c++ mfc图形绘制

ID:20355196

大小:56.00 KB

页数:4页

时间:2018-10-12

visual c++ mfc图形绘制_第1页
visual c++ mfc图形绘制_第2页
visual c++ mfc图形绘制_第3页
visual c++ mfc图形绘制_第4页
资源描述:

《visual c++ mfc图形绘制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验2VisualC++MFC的图形绘制一、实验目的1.了解Windows应用程序的特点。2.掌握MFC类库中CDC类绘图函数的使用方法。3.使用VisualC++开发简单Windows程序。二、实验内容利用VisualC++6.0设计一个简易绘图板,完成简单的绘图功能。三、实验指导1.带菜单界面制作新建一个单文档类型的MFCAppWizard(exe)工程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单

2、项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID及名称如表1所示。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。表1添加的菜单项菜单项ID菜单项名称菜单项命令响应函数IDM_DOT点OnDotIDM_LINE直线OnLineIDM-RECTANGLE矩形OnRectangleIDM_ELLIPSE椭圆OnEllipseIDM_SHANXING扇形OnShanxingIDM_LIANXUXIAN连

3、续线OnLianxuxian在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述:private:UINTm_nDrawType;接着,在视类的构造函数中将此变量初始化为0,程序代码如下:CGraphicView::CGraphicView(){//TODO:addconstructioncodeherem_nDrawType=0;}利用switch/c

4、ase语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:voidCGraphicView::OnDot(){//TODO:Addyourcommandhandlercodehere4m_nDrawType=1;}voidCGraphicView::OnLine(){//TODO:Addyourcommandhandlercodeherem_nDrawType=2;}voidCGraphicView::OnRectangle

5、(){//TODO:Addyourcommandhandlercodeherem_nDrawType=3;}voidCGraphicView::OnEllipse(){//TODO:Addyourcommandhandlercodeherem_nDrawType=4;}voidCGraphicView::OnShanxing(){//TODO:Addyourcommandhandlercodeherem_nDrawType=5;}voidCGraphicView::OnLianxuxian(){//TO

6、DO:Addyourcommandhandlercodeherem_nDrawType=6;}2.点、直线、矩形、椭圆的绘制对于直线、矩形和椭圆,在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标左键松开时得到另外一个点。为视类CGraphicView分别捕获鼠标左键按下和弹起这两个消息。另外当鼠标左键按下时,需要将鼠标当前按下点保存,因此我们为CGraphicView再增加一个CPoint类型的私有成员变量:m_ptOrigin,在视类的构造函数中将此变量初始化为0。在鼠标按下消息响应函数

7、中,保存该点,代码如下:voidCGraphicView::OnLButtonDown(UINTnFlags,CPointpoint){4//TODO:Addyourmessagehandlercodehereand/orcalldefaultm_ptOrigin=point;//保存鼠标按下得到点,也是绘制一个点CView::OnLButtonDown(nFlags,point);}在鼠标左键弹起消息响应函数中实现绘图,代码如下:voidCGraphicView::OnLButtonUp(UINTnF

8、lags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefault//创建并获得设备描述CClientDCdc(this);switch(m_nDrawType){case1:dc.SetPixel(point,RGB(255,0,0));/*绘制点*/break;case2:/*绘制直线*/dc.MoveTo(m_ptOrigin);/*调用MoveTo函数移动到

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

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

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