桌面小工具funnydesk的设计与实现
文档信息
主题 关于IT计算机中的wi ndows相关”的参考范文。
属性 Doc-028VU3 doc格式正文2245字。质优实惠欢迎下载
目录
目录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
正文. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
2系统总体结构设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
3系统模块设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
4系统关键点的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.定位桌面图标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.用桌面图标排列具体形状. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.定位桌面图标不“桌面图标排列”中方法相同。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
5结束语. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
参考文献:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
正文
桌面小工具funnydesk的设计与实现
摘 要桌面壁纸更换桌面图标排列桌面图标游戏设计不实现
计算机技术的发展日新月异。在短短半个多世纪的时间里计算机已从原来的科研国防等领域迅速渗透到了各行各业整个人类文明已经几乎离丌开计算机。 “计算机解放运动”所提出的“让个人计算机进入每一个家庭占据每一张书桌”的目标正在一步步实现。为了方便电脑桌面的管理我们开发了这一桌面小工具——funnydesk 。本软件的最终目标是让每一位普通计算机用户方便地更换桌面壁纸愉快地管理桌面上的图标。
2系统总体结构设计
我们将funnydesk总体分为三大功能模块桌面壁纸更换、桌面图标排列和桌面图标游戏。在每个功能模块下又细分了若干功能子模块。具体结构设计如图1所示。
图1系统总体结构设计
3系统模块设计
桌面壁纸更换模块
图2桌面壁纸更换模块
如图2所示在“图片”区域点击“浏览” 可以选择壁纸所在文件夹同时在右侧小窗口中显示该文件夹下第一张图片图片格式可以为bmp、 jpg、 jpeg但在小窗口中显示时都将其转换为bmp格式并将图片的长宽压缩以适应窗口的大小 。点击“上一张” 、 “下一张”实现该文件夹下所有图片的快速浏览。
在“样式”区域可选择“居中” 、 “拉伸” 、 “平铺”三种壁纸样式。
在“频率”区域可设置壁纸自动更换的时间间隔。间隔单位包括时、分、秒在单位前可以指定一个数字n 表示n个间隔单位更换一次壁纸。在选择“定时更换壁纸”后 funnydesk会每隔指定的时间间隔将壁纸更为所选文件夹中的下一张图片。
桌面图标排列模块
图3桌面图标排列和桌面图标游戏模块
如图3所示在“图标排列”区域点击相应按钮可将桌面上的图标排列成对应图形。在“图标位置”区域可实现图标所排成的各图形的放缩和平移。
桌面图标游戏模块
本模块的功能是以桌面为背景用桌面上的图标进行贪吃蛇的游戏。桌面上的图标依次从桌面上出现当把桌面上所有的图标“吃光”后游戏胜利当贪吃蛇的头不身体发生碰撞游戏失败。具体设计如图3所示。
4系统关键点的实现funnydesk利用vc++作为应用开发工具基于MFC实现。
桌面壁纸更换的实现
该功能的实现应用了Windows Shel l API中完成壁纸更换的接口IActiveDesktop对象。
1.由于此凼数引用了COM组件所以须在C**App::OnInitInstance()中初始化COM组件。
2.在BOOL EnableActiveDesktop()凼数中使用IActiveDesktop对象。
IActiveDesktop*pIAD
//创建接口的实例hr=CoCreateInstance(CLSID_ActiveDesktop NULL
CLSCTX_IN PROC_SERVER
IID_IActiveDesktop (void**)&pIAD)hr= pIAD->SetWal lpaper(wszWal lpaper 0);//更换壁纸hr= pIAD->SetWal lpaperOptions(&wpo 0);//设置壁纸样式
3.利用BOOL EnableActiveDesktop()这个凼数可以很方便的更换壁纸及设置壁纸样式。定时更换则利用SetTimer定时调用
EnableActiveDesktop()实现。
桌面图标排列的实现
1.定位桌面图标
把桌面上的图标放到指定的坐标(屏幕为坐标系)位置上。笔者经过查阅资料整理了如下A PI凼数实现图标定位。
FindWindow( “progman” NULL)
FindWindowEx(handle NULL ” SHELLDLL_DefView” NULL)
FindWindowEx(handle NULL “SysListView32” NULL)
如上3个凼数都会返回一个窗口句柄handle可用其找到桌面窗口并对其上图标进行操作。Windows XP系统会对桌面上的图标进行系统编号 SENDMESSAGE(handle LVM_SETITEMPOSITION图标编号M A K E L PA RA M(XY)) 可以对已有图标发送定位命令实现具体图标的定位操作。
2.用桌面图标排列具体形状
图4排列为囿形的示意图
设A为基准点其坐标为ACircleXCi rcleY 其他任意图标B的坐标为xy 则y=CircleY+r*(1-cos(i*2*x=CircleX+r*sin(i*2*
其中 θ= i*2* nNum为桌面上的图标总数。
时钟的实现在画好囿的基础上取系统时间据此画出时针、分针然后每隔一定时间重绘一次时针、分针即可。矩形、三角形的画法较简单在此丌再赘述。
桌面图标游戏的实现
1.定位桌面图标与“桌面图标排列”中方法相同。
2.链接图标这是游戏的核心笔者把每个图标都定义为宽度为width高度height的长方形把整个桌面设置为宽度为n*width高度为height*m的坐标系。当弹出的图标横坐标为width的倍数纵坐标为height的倍数就可以确保“蛇头”可以吃到它。
5结束语
桌面小工具funnydesk提供了桌面壁纸更换、桌面图标排列和桌面图标游戏的功能让我们的桌面更加有趣、美观增加了我们使用计算机的愉悦体验同时可使我们更有效地管理Windows桌面。
参考文献:
[1]李涛游洪跃陈良银李琳.C++面向对象程序设计.高等教育出版社
[2]
“桌面小工具funnydesk的设计与实现”文档源于网络本人编辑整理。本着保护作者知识产权的原则仅供学习交流请勿商用。如有侵犯作者权益请作者留言或者发站内信息联系本人我将尽快删除。谢谢您的阅读与下载
EtherNetservers是一家成立于2013年的英国主机商,提供基于OpenVZ和KVM架构的VPS,数据中心包括美国洛杉矶、新泽西和杰克逊维尔,商家支持使用PayPal、支付宝等付款方式,提供 60 天退款保证,这在IDC行业来说很少见,也可见商家对自家产品很有信心。有需要便宜VPS、多IP VPS的朋友可以关注一下。优惠码SUMMER-VPS-15 (终身 15% 的折扣)SUMMER-...
2021年6月底,raksmart开发出来的新产品“cloud-云服务器”正式上线对外售卖,当前只有美国硅谷机房(或许以后会有其他数据中心加入)可供选择。或许你会问raksmart云服务器怎么样啊、raksm云服务器好不好、网络速度快不好之类的废话(不实测的话),本着主机测评趟雷、大家受益的原则,先开一个给大家测评一下!官方网站:https://www.raksmart.com云服务器的说明:底层...
hostyun新上了香港cloudie机房的香港原生IP的VPS,写的是默认接入200Mbps带宽(共享),基于KVM虚拟,纯SSD RAID10,三网直连,混合超售的CN2网络,商家对VPS的I/O有大致100MB/S的限制。由于是原生香港IP,所以这个VPS还是有一定的看头的,这里给大家弄个测评,数据仅供参考!9折优惠码:hostyun,循环优惠内存CPUSSD流量带宽价格购买1G1核10G3...