WTLVisual C++ 7.1Visual Studio .NET 2003Windows 2003Windows 2000Windows XP初学者开发Visual StudioWindowsC++
屏幕保护程序管理器 - 使用 WTL 中 SystemTray 类的示例






4.45/5 (6投票s)
从任务栏管理屏幕保护程序活动。
引言
有时我需要一个工具来停止运行屏幕保护程序(例如,当我等待重要电子邮件消息时)。 我在 CodeProject 上查找了一些不错的解决方案。 我将它们放在一起,花了 3 或 4 个小时编写了这个小工具。
特点
- 从任务栏启用/禁用屏幕保护程序
- 退出时恢复屏幕保护程序的原始状态
- 在 Explorer 崩溃后恢复任务栏中的图标
- 轻松访问控制面板 -> 显示设置
实现
该项目的基石是 Chris Maunder 的 系统托盘 类和 Win32 API SystemParametersInfo
函数。
首先,我创建了一个基于 WTL 对话框的项目,然后删除了 MainDialog
,并添加了一个从 CWindowImpl
类继承的主窗口类。 为了实现当用户右键单击任务栏图标时显示的弹出菜单中的复选框,我需要从 CSystemTray
继承我自己的类。 它的虚拟函数 CustomizeMenu
被重写。 然后,我添加了一些 SystemParametersInfo
调用,包括 CLimitSingleInstance
来自 微软。 在 CSystemTray
中进行了一些 修改。