时钟屏幕保护程序






4.73/5 (38投票s)
用 MFC 编写的鼠标跟踪时钟屏幕保护程序。
引言
这个项目是一个屏幕保护程序应用程序,我最初开始它是为了学习 C++/MFC。那是在几年前,在那段时间里,我多次回去为它添加新功能并尝试新事物。它已经在我的家人和朋友的电脑上流行起来了,既然他们似乎都喜欢它,我想我应该把它放在 CodeProject 上,希望能让你们大家也喜欢它。
背景
早在 2001 年,互联网泡沫破裂后,我所在的两名咨询公司突然没有了客户和现金。所以我们俩都不得不重新为别人打工。我的前商业伙伴比我先找到工作,并好心地劝说他的新老板也给我一个面试机会。
当时,我主要从事 VB6 编程,在面试过程中,很明显他们正在寻找一个 MFC 开发人员。我做过一些 C++ 编程,并在当时尽了我最大的努力,但回家后我确信我不会得到这份工作。
嗯,俗话说, necessity is the mother of invention(必要性是发明之母)。再加上迅速缩水的银行账户和大量的空闲时间,这足以成为强大的动力,所以我认为我最好尽快做些什么来证明我就是这个人。
与此同时,我父亲给我发了一个 很酷的网页,其中使用了一些非常令人印象深刻的 JavaScript 来创建一个动画时钟,该时钟会随着用户鼠标在页面上移动而跟踪鼠标。他想知道是否有办法将其变成屏幕保护程序。
我决定用 MFC 实现同样的功能,并将它发送给面试过我的那些人,希望能够改变他们的想法。
经过近乎全天候(双关语)的学习和开发一个星期后,我终于把它做好了,我认为它已经准备就绪。就在我写电子邮件给我面试的部门负责人,解释应用程序和我的写作动机时,他给我打来了电话。项目方向的改变,以及我同事的一些额外鼓励,促使他们聘用了我!
所以我并没有把这个应用程序发给他,但我父亲很喜欢,而且我在那段短暂的时间里学到了很多东西。
在此后的几年里,我为它添加了一些功能,例如 Outlook 日历和 MAPI 支持,以便在屏幕保护程序运行时发出新邮件到达的信号。所以现在,它已经是一个不错的程序了,而且还是一款有趣的屏幕保护程序。
Using the Code
由于 Outlook 集成需要一些 MS Office 类型库,而且我确定重新分发这些库是不合法的,所以我使用了条件编译语句来处理这些部分。如果你想编译 Outlook 集成代码,你需要一个 *MSOUTL.OLB* 和 *MSO9.DLL* 的副本。在 *stdafx.h* 中定义 MS_OFFICE_INTEGRATION
,确保这两个 Office 类型库放在正确的位置,这样就可以编译了。
通过(上方)下载的 MSI 安装的版本包含了 Outlook 集成功能。
MAPI 邮件通知应该可以与任何 MAPI 兼容的电子邮件客户端一起使用,但我只在 Outlook Express 上进行过测试,所以你的体验可能会有所不同。
安装 *ClockSaver.scr* 后,它将出现在你可用的屏幕保护程序列表中,名称为 ClockSaver
。
一些致谢
我不知道该将原始 JavaScript 时钟归功于谁,因为我从父亲那里得到的 HTML 页面没有作者信息。
屏幕保护程序基类来自 chensu 在 CodeGuru.com 上发布的一篇文章。(饶了我吧,我当时还没听说过 CodeProject)。
关注点
在如此长的时间里处理这个项目最有趣的事情之一是,很多代码都来自 CodeProject,我认为这证明了这个网站有多么宝贵的资源!
本项目使用了
后来我将支持多显示器的代码开发成了可重用类,所以它也使用了 MFC 多显示器类。
历史
- 2004 年 5 月 30 日:首次发布 1.1.3
- 2004 年 6 月 14 日:1.1.4
- 为秒针和日期添加了单独的颜色设置
- 美化了配置对话框
- 添加了关机选项
- 错误修复、重构和大量代码清理
- 2004 年 6 月 24 日:1.1.5
- 修复了 `AnimateWindow` 的错误
- 改进了 MAPI 支持
- 添加了“强制从左到右”选项
- 添加了自定义文本选项
- 添加了 NT4 支持