# 屏幕保护程序

实例说明 思路与技术 开发步骤

### 实例说明

屏幕保护程序是在操作系统中经常使用的一种保护程序。屏幕保护程序的作用是在用户不使用操作系统时保护计算机屏幕内容，不允许其他人使用。本实例实现了一个简单的在屏幕上绘制文字的屏幕保护程序。如图 1 所示。

图 1 屏幕保护程序

### 思路与技术

对于一个屏幕保护程序来说，如果程序设计人员自己实现将会是很麻烦的一件事，还好 VC 中提供了一个类库使得实现一个屏幕保护程序变得非常简单。这个类库的名子是 scrnsave.lib，通过对此类库中所提供的方法接口的实现就可以快速的创建一个屏幕保护程序。下面来描述一下屏幕保护程序的创建过程，首先创建一个基于对话框的 MFC 应用程序，将工程中的应用程序类和窗体类以及相关资源删除，接下来创建一个.CPP 文件，在这个文件中添加头文件#include <scrnsave.h>，最后实现 RegisterDialogClasses、ScreenSaverProc 和 ScreenSaverConfigureDialog 函数。

### 开发步骤

（1）打开 Visual C++6.0 开发环境，在文件菜单中选择新建命令，选择 MFC 应用程序选项，在工程名称文本框中输入 Screen，在工程路径文本框中输入工程保存的路径。如图 2 所示。

图 2 新建对话框

（2）单击 OK 按钮后进入向导，在此界面中选择基于对话框的应用程序，单击 Finish 按钮。如图 3 所示。

图 3 应用程序向导

（3）在工程的文件视图中将不需要的类文件删除。如图 4 所示。

图 4 文件视图

（4）选择文件菜单中的建新命令，创建一个名为 Screen.CPP 的文件，如图 5 所示。

图 5 新建 CPP 文件

（5）在文件中实现如下代码。

// 程序需要的头文件

#include "stdafx.h"

#include <scrnsave.h>

#pragma comment(lib,"scrnsave.lib") //使用库文件

//屏保程序消息回调方法

LRESULT CALLBACK ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

switch (message)

{

case WM_PAINT:

{

PAINTSTRUCT ps;

HDC hDC = BeginPaint(hWnd, &ps);//开始绘图

SetBkMode(hDC, TRANSPARENT);//设置背景绘图模式

SetTextColor(hDC, RGB(0x33, 0xcc, 0));//设置文本颜色

char *str = "明日科技，屏幕保护程序！";//屏保显示字符串

TextOut(hDC, 150, 150, str, strlen(str));//绘制字符串

EndPaint(hWnd, &ps);//结速绘图

}

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

// 缺省的消息处理函数

return DefScreenSaverProc(hWnd,message,wParam,lParam);

}

return 0;

}

//屏保设置程序消息回调方法

BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{

return FALSE;

}

//注册屏保程序

BOOL WINAPI RegisterDialogClasses(HANDLE hInst)

{

return TRUE;

}

（6）选择“工程”菜单中的“设置”选项，在“工程设置”对话框中选择“连接”选项卡，将输出文件名的扩展名改为.scr。如图 6 所示。

图 6 工程设置对话框

（7）将所生成的屏保程序复制到 System32 目录下即可。