实验二简单绘图

实验二简单绘图

ID:42477265

大小:37.50 KB

页数:3页

时间:2019-09-15

实验二简单绘图_第1页
实验二简单绘图_第2页
实验二简单绘图_第3页
资源描述:

《实验二简单绘图》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验二简单绘图实验目的:掌握消息捕获与消息响应机制;学握VC++中绘制线条的各种方法和原理;能够绘制各种颜色形状的线条。实验内容:一、了解MFC消息映射机制在view类上单击鼠标右键,添加一条windowsmessagehandler,选择WM_OnLButtonDown,杏看文件中增加的三处代码:①每个CCmdTarget类的派生类定义头文件中都有DECLARE_MESSAGE_MAP(),用丁声明消息映射表的构成;②在该类源文件屮,在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间定义消息映射表,具屮添加了消息映射宏;③消息响应函数的定义。说明针对该消息做岀什么

2、响应。了解MessageBox函数在此吋的用法和原因。二、绘制线条新建一个基于MFC的工程Draw,选择单文档模式,其它选项默认。1>在view类中增加成员变量:private:CPointm.ptOrigin;〃可以在头文件屮(双击类名)杳看代码;再MSDNCPoint2、在view类的构造函数中初始化该变量:m_ptO「igin=0;3、在view类屮添加Windows消息处理器OnLButtonDown,在该函数屮保存鼠标按卜•时的笫一个坐标点:m_ptOrigin=point;〃线的起点4、在view类中添加Windows消息处理器OnLButtonUp,此时获得第二个坐标点:p

3、oint〃线的终点。有了这两个点就可以画线了。以下采用4种方法实现:①利用SDK全局函数画线HDChdc;〃必须获取一个DC的句柄hdc=::GetDC(m_hWnd);//view窗口也有一个m_hWnd的旬柄,采用平台SDK的GetDC函数获取该值,::表示为全局函数,MSDN查看MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);//MSDN该函数LineTo(hdc,point・x,pointy);::ReleaseDC(m_hWnd^hdc);②利用MFC的CDC类画线MFC提供了一个设备描述表的封装类CDC,该类封装了所有与绘图相关的操作

4、。CDC*pDC=GetDC();//MSDNGetDC,选CWnd类的成员函数,不选平台SDK,与上述区别pDC->MoveTo(m_ptOrigin);〃区别上述函数pDC->LineTo(point);ReleaseDC(pDC);〃用CWnd类的成员函数禅放③利用MFC的CClientDC类画线//MSDNCClientDCCClinlDC派生于CDC,并且在构造函数时调用GetDC,在析构时调用ReleaseDCoCClientDCdc(this);〃查看它的类成员,查看构造函数,了解如何构造一个该类的对彖〃每个对象都有自己的this指针,view窗口对象也不例外dc.Move

5、To(m_ptOrigin);dc.LineTo(point);如果要在框架窗口中画线,则可以获取view的父窗口指针:CClientDCdc(GetParent());④利用MFC的CWindowDC类画线//MSDNCWindowDC,与CClientDC类似CWindowDCdc(this);dc.MoveTo(m_ptOrigin);dc.LineTo(point);如果要在框架窗口中画线,贝lj:CWindowDCdc(GetParent());如果要在桌面窗口画图,贝(J:CWindowDCdc(GetDesktopWindow());三、绘制彩色线条要改变画笔的颜色,可以用

6、Cpen类,查看其成员,构造函数2,查看RGBCPenpen(PS_SOLID,3,RGB(255,0,0));〃创建一个画笔CClientDCdc(this);CPen*pOldPen=dc.SelectObject(&pen);〃将画笔选到DC中才牛效,MSDNSelectObject,它返回的是被替代的原来的画笔指针,保存该指针在pOldPen中OOOOOOdc.SelectObject(pOldPen);〃还原以前的I出i笔注意:换线型、换色彩调试四、使用画刷绘图1、简单画刷CBrushbrush(RGB(255,0,0));//MSDNCbrush类,成员,构造函数CClien

7、tDCdc(this);dc.FillRect(CRect(m_ptOrigin,point),&brush);//MSDNFillRect,CRect2、位图画刷-插入一个位图资源-用位图作画-在CAVicw::OnLButtonUp()函数中添加:•CBitmapbitmap;•bitmap.LoadBitmap(1DB_BITMAP1);•CBrushbrush(&bitmap);•CClientDCdc(this);•dc.

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

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

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