- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘 要
本是利用VC++这个强大的可视化编程工具开发的,主要功能包括、、图形的保存等功能。本文介绍了如何完成上述功能,同时详细阐述了画图系统的实现过程以及对画图系统所做的功能扩充。在画图设计上,其主要任务是:实现绘制图、。本具、、用户可以根据需要对其功能进行扩充、完善与修改,使其符合自己的要求。总之,本是一个逐步完善的。、、
前 言
计算机技术的发展,使人类社会进入了信息化和自动化,计算机智能识别也随着计算机的发展得到了迅速的发展。特别是图形图像的计算机处理技术更是有了前所未有的进步和应用。计算机识别也逐渐的从图形图像处理的大环境下分离出来作为一门新的高科技研究领域出现。画图涉及到的学科很多,众多领域交叉、综合集成,有广泛的应用。本程序是在VC6.0平台上用MFC所编绘制方面的功能主要包括绘制各种图元,包括直线、矩形、椭圆、、绘图时可以选择各种颜色各种线型和线宽支持保存和读取?面向对象技术是一个非常实用而强有力的软件开发方法。它具有许多特色。一是,二是。三是OnDot IDM_LINE 直线 OnLine IDM-RECTANGLE 矩形 OnRectangle IDM_ELLIPSE 椭圆 OnEllipse IDM_YUAN 圆 OnYUAN 表2-1添加的菜单项
在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CWdrawView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述:
private: UINT m_nDrawType;
接着,在视类的构造函数中将此变量初始化为0,程序代码如下:
CWdrawView::CWdrawView()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType=0;
}
利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:
void CWdrawView::OnDot()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType=1;
}
void CWdrawView::OnLine()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType=2;
}
void CWdrawView::OnRectangle()
{
// TODO: 在此添加命令处理程序代码
在此添加命令处理程序代码
在此添加命令处理程序代码
CWdrawView分别捕获鼠标左键按下和弹起这两个消息。另外当鼠标左键按下时,需要将鼠标当前按下点保存,因此我们为CWdrawView再增加一个CPoint类型的私有成员变量:m_ptOrigin,在视类的构造函数中将此变量初始化为0。在鼠标按下保存该点,代码如下:
void CWdrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加命令处理程序代码
在此添加命令处理程序代码
SetPixel,这也是CDC类的一个成员方法,该函数的生命形式如下:COLORREF SetPixel (POINT point,COLORREF crColor);该函数是在指定的点设置一个像素。其中第一个参数(point)是指定的点,第二个参数(crColor)是指定的颜色。在程序中设定的颜色在系统颜色表中可能不存在,但系统会选择一种和这个颜色最接近的颜色。RGB是一个宏,它有三个参数,分别代表红、绿、蓝三种颜色的值。这三个参数BYTE类型,取值范围为0~255。RGB(0,0,0)是黑色,RGB(255,255,255)是白色,将这三个分量设置成为0~255之间的任意值,从而得到各种不同的颜色。这里的RGB(255,0,0)是红色。
绘制直线时,首先调用MoveTo函数移动到原点,然后调用LineTo函数绘制到终点。
绘制矩形时使用Rectangle函数,该函数声明形式为:BOOL Rectangle (LPCRECT lpRect);
该函数有一个指向Crect对象的参数,后者可以利用两个点来构造。需要注意的是该函数需要的是指向Crect对象的指针,而上述代码中传递的却是Crect对象,但运行编译时也能成功通过,运行时也不会报错,这是为什么呢?我们知道C系列的语言都是强类型语言,如果类型不匹配的话,需要进行强制类型转换。但这里为什么没有进行这样的强制类型转换程序也可以通过呢?实际上,Crect类提供了这样一个成员函数:重载LPCRECT操作符,其作用是将Crect转换为LPCRECT类型。因此,当在程
您可能关注的文档
最近下载
- 健康教育对妊娠期糖尿病患者的影响.doc VIP
- 软硬件更新升级操作规范.docx VIP
- (完整版)电气图形符号大全,推荐文档 .pdf VIP
- 【2025秋】人教版二年级数学上册教学计划(含进度表).docx VIP
- 八年级语文上册《中国人首次进入自己的空间站》教学详案.docx VIP
- 反渗透系统操作维护技术手册1.pdf VIP
- 智慧物流园区可视化综合管控平台建设方案.pptx VIP
- 4.3 去括号(课件)青岛版(2024)数学七年级上册.pptx VIP
- DB3502Z 5009-2018-海绵城市建设技术标准图集.pdf VIP
- 上海市闵行区2024年六年级《语文》上册期中试题与参考答案.docx VIP
文档评论(0)