放大镜程序软件的设计与实现
以下是资料介绍,如需要完整的请充值下载. 本资料已审核过,确保内容和网页里介绍一致. 密 惠
无需注册登录,支付后按照提示操作即可获取该资料.
无需注册登录,支付后按照提示操作即可获取该资料.
资料介绍:
摘 要
本方案描述了由C++开发的放大镜软件的设计与实现,介绍了软件研究的技术要求,并对开发该软件的目的、开发环境与平台、设计理念与软件功能进行了描述。
该方案设计具体详细的阐述了方案的可行性、课题选择的意义、方案的设计方式、实现逻辑、软件运作流程、界面的设计、程序的设计等。其中,界面设计包括被放大镜的窗口设计以及被放大区域的计算方式,程序设计包括总体流程设计、放大镜窗体设计、消息循环设计、以及窗口美化设计。此外还对代码的实现进行了介绍,主要包括放大窗口设计模块、图像采集模块设计、消息循环模块以及放大窗口美化模块。
最后对放大镜软件进行了功能测试,并对测试结果进行总结。读者通过阅读本文,将对该软件有一个系统的了解。
关键词 程序设计;放大镜;C++ ;API
Design and implementation of a magnifying glass
Abstract
This scenario describes the design and implementation of C ++ software development magnifying glass, introduces the technical requirements for software research and development purpose of the software development environment and platform design and software features are described.
The program specifically designed in detail the feasibility of the program ,meaning the subject choice, the way the program design, implementation logic, software, operational processes, interface design ,program design .Among them, the interface design, including calculation is a magnifying glass window design and the area is enlarged, the overall program design, including process design, magnifying glass form design, the message loop design, landscaping and window design. In addition,the realization of the code were introduced, including the zoom window design module, image acquisition module design,module and zoom windows message loop beautification module.
Finally magnifier software for functional testing, and test results are summarized. By reading this article the reader will understand the software has a system.
Keywords programming;magnifying; C + +; API
该软件划分为四个模块:放大窗口设计模块、图像采集模块设计、消息循环模块以及放大窗口优化模块。
开发思想与原理
放大镜软件实现的基础功能是放大鼠标所在区域并可通过键盘与鼠标对放大镜的各项属性进行更改。
放大镜软件实现思想是首先对鼠标所在区域通过计算,然后进行被放大区域的抓取,将图形获取并放在缓存之中,通过StretchBlt()将数据复制至目标区域,变相实现将图像放大的效果。如果想实现缩小的效果,只需修改想要抓取区域的大小以及计算方式即可。
在这个过程中我们可以定义一个定时器不断的监控虚拟信息输入,然后通过转换后判断当前用户的动作或输入,从而通过函数判定来选择目标代码的执行。放大窗口的移动,软件的退出,放大区域的刷新,鼠标的移动,鼠标滚轮动作,键盘输入决定窗口大小等,均由定时器进行判定输出信号。放大镜软件的所有动作,都是由定时器模块与回调函数机制共同来决定。
下面是该软件中两个小算法的思路:计算抓取区域与实现窗口移动。
如何计算所要被抓取的区域:首先通过GetCursorPos()函数可获得鼠标位置,然后利用放大窗口所设定的变量值,即放大窗口大小,除以2再除以放大因数,便可获得所想要被抓取的区域。
当被放大区域的上下左右边界到达屏幕临界点,即被放大区域即将超出屏幕边界时,根据鼠标所在位置对被放大窗口的大小进行针对性设计,经过计算后重新修改上下左右边界的值,便可防止被放大区域超出屏幕边界。
模块功能划分
根据需求分析以及程序设计可知,要想完成放大镜的功能,首先要通过图像采集模块计算被放大区域,获得被放大区域的数据,同时通过窗口设计模块设定放大窗口各属性,创建放大窗口,通过消息循环模块监测虚拟消息,首先默认将数据复制至放大窗口,之后不断监测虚拟消息,转译、发送消息到放大窗口,根据消息类型,选择性执行代码行,实现各种功能。最后在软件成功运行的基础之上优化界面显示,提高用户的使用体验感。
目 录
摘 要 i
Abstract ii
1 绪论 1
1.1 课题选择的目的和意义 1
1.2 国内外研究现状及发展趋势 1
1.3 研究范围 2
1.4 技术要求 3
2 软件描述 4
2.1 任务概述 4
2.1.1 系统目标 4
2.1.2 系统的开发环境 4
2.1.3 开发思想与原理 4
2.2 功能描述 5
2.2.1 软件设计 5
2.2.2 模块功能划分 5
2.3 性能 5
3 方案设计 6
3.1 具体方案设计 6
3.1.1 模块划分 6
3.1.2 各个模块的功能说明 6
3.2 方案论证分析 7
3.2.1 方案的技术可行性 7
3.2.2 方案的经济可行性 8
3.2.3 方案的优点 9
3.3 程序设计 9
3.3.1 总体流程 9
4 代码实现 10
4.1 主程序入口 10
4.2 放大窗口模块 12
4.3 图像采集模块 13
4.4 消息循环模块 16
4.5 放大窗口优化模块 19
4.6 自定义函数 19
5 测试 20
5.1 测试 20
5.1.1 功能测试 20
5.1.2 性能测试 20
6 结论 21
参考文献 22
致谢 23
附录1 程序运行结果及算法 24
7.1 运行结果 24
7.2 算法 26
附录2 名词解释 28
外文原文 30
中文翻译 41