网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
深入浅出屏幕保护程序编程
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
框的ID必须为DLG_SCRNSAVECONFIGURE。它由系统的
SCRNSAVE.H.定义。
二.编程实例

1.最小的屏幕保护程序MiniSaver。这是一个仅包含最基本模块的屏幕保护程序,
运行时在屏幕上显示一行活动的文字。步骤如下:

第一步,在VC5.0/6.0中建立32位应用工程(不选MFC WIZARD EXE).建立如下的
MiniSaver.CPP文件:

#include < windows.h >
#include
< scrnsave.h >// SCRNSAVE.LIB的头文件
#include "resource.h"
file://声明三个基本的函数
LRESULT WINAPI ScreenSaveProc
(HWND,UINT,WPARAM,LPARAM);
BOOL WINAPI ScreenSaveConfigureDialog
(HWND,UINT,WPARAM,LPARAM);
BOOL WINAPI RegisterDialogClasses(HINSTANCE);
file://定义三个基本的函数
LRESULT WINAPI ScreenSaverProc
(HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam)
{ HDC hDC;
RECT rc;
static int xpos;//文本的横坐标
static char SlideText="欢迎使用屏幕保护程序!";
static UINT timerID;//定时器
switch (message)
{
case WM_CREATE:
xpos=0;
timerID=SetTimer(hWnd,1,250,NULL);//设置定时器
break;

case WM_ERASEBKGND:
file://空操作,交由DefScreenSaverProc处理
break;
case WM_TIMER:
hDC=GetDC(hWnd);
file://清屏
SetRect(&rc,0,0,GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN))
FillRect(hDC,&rc,GetStockObject(BLACK_BRUSH));
file://输出文本
SetTextColor(hDC,RGB(255*rand(),
255*rand(),255*rand()));
SetBkColor(hDC,RGB(0,0,0));
TextOut(hDC,xpos,GetSystemMetrics(SM_CYSCREEN)/2,
SlideText,strlen(SlideText));
file://移动文本的横坐标
xpos=(xpos+10)%GetSystemMetrics(SM_CXSCREEN);
ReleaseDC(hWnd,hDC);
break;

case WM_DESTROY:
KillTimer(hWnd,timerID);//删除定时器
PostQuitMessage (0);
return 0;
}
return DefScreenSaverProc
(hWnd,message,wParam,lParam);
}

BOOL WINAPI ScreenSaverConfigureDialog
(HWND hWnd,UINT message,WPARAM wParam,
LPARAM lParam)
{//暂时不需要配置对话框,仅返回FALSE
return FALSE;
}

BOOL WINAPI RegisterDialogClasses
(HINSTANCE hInstance)
{//一般不需要,仅返回TRUE
return TRUE;
}

第二步,定义资源文件MiniSaver.rc。在VC环境下生成一图标,其ID为ID_APP。
向字符串表加入ID为IDS_DESCRIPTION字符串“MiniSaver”,并作为字符串表第一项

第三步,编译连接并将生成的MiniSaver.EXE更名为MiniSaver.SCR拷入WINDOWS目
录。注意, 编译前一定要在Project菜单的Setting中的Link选项中加上SCRNSAVE.LIB
库。

第四步,控制面板的显示器设置中选择屏幕保护程序MiniSaver就可以使用了。注
意不要急于配置屏幕保护程序,因为MiniSaver还有没提供配置对话框。

2.较完整的屏幕保护程序MySaver。该屏幕保护程序提供了配置对话框和关于对话
框,并且使用了图象显示。读者可以将自己喜爱的图象加到资源中。

第一步,在VC5.0/6.0中建立32位应用工程(不选MFC WIZARD EXE)并定义资源文件
MiniSaver.rc。

在VC环境下生成一图标,其ID为ID_APP。

向字符串表加入ID为IDS_DESCRIPTION字符串“MiniSaver”,并作为字符串表第
一项。加入ID为idsAPPName字符串“Screen Saver.MySaver”,说明见后面程序。

加入ID为IDB_BITMAP1的位图

加入ID为DLG_ABOUT对话框。仅有一ID为IDOK的按钮

加入ID为ID_APP。此对话的ID由SCRNSAVE.H定义且只能为
DLG_SCRNSAVECONFIGURE。其中有ID为IDC_EDIT的EDIT控件,ID为IDOK,IDCANCEL和
IDABOUT的按钮。

值得注意的是RESOURCE.H定义的ID_APP和DLG_SCRNSAVECONFIGURE可能与
SCRNSAVE.H预定义的值冲突,可手动地将RESOURCE.H中的ID_APP设为100,
DLG_SCRNSAVECONFIGURE设为2003即可。

第二步,建立如
  • 上一篇资讯: Matlab与VC集成
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号