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

#include < windows.h > #include < scrnsave.h >

#include "resource.h"
file://声明三个基本的函数
LRESULT WINAPI ScreenSaveProc
(HWND,UINT,WPARAM,LPARAM);
BOOL WINAPI ScreenSaveConfigureDialog
(HWND,UINT,WPARAM,LPARAM);
BOOL WINAPI RegisterDialogClasses(HINSTANCE);
BOOL WINAPI AboutDialog(HWND,UINT,WPARAM,LPARAM);
file://定义全局变量
char szIniFileName="control.ini";
file://屏幕保护程序配置数据存放在control.ini文件
char szSection[32];
file://屏幕保护程序配置数据在control.ini文件位置区名称
char szEntry="Slide Text:";
file://屏幕保护程序配置数据项名称
char SlideText[256];
file://屏幕保护程序配置数据,这里是文本内容
file://定义三个基本的函数
LRESULT WINAPI ScreenSaverProc
(HWND hWnd,UINT message, WPARAM wParam,
LPARAM lParam)
{ static HBITMAP hBmp;//位图句柄
HDC hDC,hMemDC;//hMemDC是内存设备,缓存位图。
RECT rc;
static int xpos=0;
static UINT timerID;
switch (message)
{
case WM_CREATE:
file://文件位置区名称szSection赋值为资源
idsAPPName。其中hMainInstance为//SCRNSAVE.LIB
定义的屏幕保护程序实例句柄
LoadString(hMainInstance,idsAPPName,
szSection,sizeof(szSection));
strcpy(SlideText,"欢迎使用屏幕保护程序!");
file://读control.ini文件中[Screen Saver.MySaver]
区的配置数据到SlideText
GetPrivateProfileString(szSection,szEntry,
SlideText,SlideText,
sizeof(SlideText),szIniFileName);
file://取位图
hBmp=LoadBitmap(hMainInstance,
MAKEINTRESOURCE(IDB_BITMAP1));
timerID=SetTimer(hWnd,1,250,NULL);
break;

case WM_ERASEBKGND:
hDC=GetDC(hWnd);
file://显示位图
hMemDC=CreateCompatibleDC(hDC);
SelectObject(hMemDC,hBmp);
SetRect(&rc,0,0,GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN)-25);
BitBlt(hDC,rc.top,rc.left,rc.right,rc.bottom,
hMemDC,rc.top,rc.left,SRCCOPY);
file://清除底行,为文本显示作准备。
SetRect(&rc,0,GetSystemMetrics(SM_CYSCREEN)-25
GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN));
FillRect(hDC,&rc,GetStockObject(BLACK_BRUSH));
ReleaseDC(hWnd,hDC);
DeleteDC(hMemDC);
return 1;

case WM_TIMER:
hDC=GetDC(hWnd);
file://清除底行
SetRect(&rc,0,GetSystemMetrics(SM_CYSCREEN)-25,
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)-25,
SlideText,strlen(SlideText));
xpos=(xpos+10)%GetSystemMetrics(SM_CXSCREEN);
ReleaseDC(hWnd,hDC);
break;

case WM_DESTROY:
DeleteObject(hBmp);
KillTimer(hWnd,timerID);
PostQuitMessage (0);
return 0;
}
return DefScreenSaverProc
(hWnd,message,wParam,lParam);
}

BOOL WINAPI ScreenSaverConfigureDialog
(HWND hWnd,UINT message,WPARAM wParam,
LPARAM lParam)
{ switch (message)
{
case WM_INITDIALOG:
LoadString(hMainInstance,idsAPPName,
szSection,sizeof(szSection));
strcpy(SlideText,"欢迎使用屏幕保护程序!");
GetPrivateProfileString(szSection,
szEntry,SlideText,
SlideText,sizeof(SlideText),szIniFileName);
SetDlgItemText(hWnd,IDC_EDIT,SlideText);
SetFocus(GetDlgItem(hWnd,IDC_EDIT));
return FALSE;

case WM_COMMAND:
switch(wParam
  • 上一篇资讯: Matlab与VC集成
  • 网学推荐

    免费论文

    原创论文

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