• 大小: 1.36MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-26
  • 语言: 其他
  • 标签: C、C++  、屏保  

资源简介

本程序设计的是一个飘雪的屏幕保护程序,当系统检测到一段时间内没有鼠标和键盘消息输入(即空闲了一段时间,此长度可以设置)时,程序便会运行,屏幕不再是一个静止的画面,而是在屏幕上飘起了雪白的雪花。当然,在屏保运行期间可以设置雪花的颜色,而一旦有鼠标左键的击键命令或是特定键盘击键命令,可以让屏保程序关闭,从而恢复屏保前的正常状态。

资源截图

代码片段和文件信息

#include
#include
#include

#define ID_TIME 1

LRESULT CALLBACK WndProc(
  HWND hwnd      
  UINT uMsg      
  WPARAM wParam 
  LPARAM lParam   
);

class SNOW //雪花类
{
public:
void InitiateSnow(); //初始化雪花
void TimerSnow(); //雪花随时钟而改变
void DrawSnow(HDC hdc);
private:
POINT pos; //雪花位置
int r; //雪花增值半径
int xSpeed; //水平移动速度
int ySpeed; //竖直移动速度
};
void SNOW::InitiateSnow()
{
int iScreenWidthiScreenHeight;
iScreenWidth=GetSystemMetrics(SM_CXSCREEN);
iScreenHeight=GetSystemMetrics(SM_CYSCREEN);
//初始化雪花的坐标、增值半径、水平和垂直移动速度
pos.x=rand() % iScreenWidth;
pos.y=rand() % iScreenHeight;
r=rand() % 10 + 1;
xSpeed=rand() % 3 - 1;
ySpeed=rand() % 5 + 1;
}
void SNOW::TimerSnow()
{
int iScreenWidthiScreenHeight;
iScreenWidth =GetSystemMetrics(SM_CXSCREEN);
iScreenHeight=GetSystemMetrics(SM_CYSCREEN);
RECT rect;
pos.x += xSpeed;
pos.y += ySpeed;
SetRect(&rect00iScreenWidthiScreenHeight);
if(!PtInRect(&rectpos))
{
pos.x = rand() % iScreenWidth;
pos.y = rand() % (iScreenHeight / 3);
}
}
void SNOW::DrawSnow(HDC hdc)
{
Ellipse(hdcpos.xpos.ypos.x+rpos.y+r);
}

class WndClass //窗口类
{
public:
void DesignClass(HINSTANCE); //设计窗口类
void SetClassName(TCHAR str[]); //得到窗口类名
WNDCLASS GetWNDCLASS(); //返回窗口类结构
private:
TCHAR szAppName[20];
WNDCLASS wc; //窗口类结构
};
void WndClass::SetClassName(TCHAR str[])
{
strcpy(szAppNamestr);
}
void WndClass::DesignClass(HINSTANCE hInstance)
{
//窗口类风格
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockobject(WHITE_BRUSH);
wc.hCursor=LoadCursor(NULLIDC_ARROW);
wc.hIcon=LoadIcon(NULLIDI_APPLICATION);
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName=szAppName;
wc.lpszMenuName=NULL;
wc.style=CS_HREDRAW|CS_VREDRAW;
}
WNDCLASS WndClass::GetWNDCLASS()
{
return wc;
}

int WINAPI WinMain(HINSTANCE hInstance
   HINSTANCE hPrevInstance
   LPSTR lpCmdLine
   int nShowCmd)
{
TCHAR szAppName[]=TEXT(“Snow“);
int iScreenWidthiScreenHeight;
iScreenWidth=GetSystemMetrics(SM_CXSCREEN);
iScreenHeight=GetSystemMetrics(SM_CYSCREEN);

WndClass wndclass;
wndclass.SetClassName(szAppName);
wndclass.DesignClass(hInstance);
//注册窗口类
if(!RegisterClass(&wndclass.GetWNDCLASS()))
{
MessageBox(NULLTEXT(“RegisterClass Error“)TEXT(“Error“)0);
return 0;
}
HWND hwnd;
MSG msg;
//创建窗口
hwnd=CreateWindow(szAppNameTEXT(“Snow“)
WS_OVERLAPPEDWINDOW
00iScreenWidthiScreenHeight
NULLNULLhInstanceNULL);
//显示及更新
ShowWindow(hwndSW_SHOWNORMAL);
UpdateWindow(hwnd);
//消息循环
while(GetMessage(&msgNULL00))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

class WindowProc //基于回调函数消息响应类
{
public:
void static OnCreate(HWND hwnd);
void static OnTimer(HWND hwnd);
void static OnLButtonDown(HWND hwnd);
void static onkeydown(HWND hwndWPARAM wParam)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     267776  2014-08-30 14:22  屏幕保护程序设计报告.doc

     文件     176198  2011-07-12 10:32  屏幕保护程序设计程序\Debug\SnowScreenSaver.exe

     文件     217688  2011-07-14 13:25  屏幕保护程序设计程序\Debug\SnowScreenSaver.ilk

     文件      26903  2011-07-14 13:25  屏幕保护程序设计程序\Debug\SnowScreenSaver.obj

     文件    3601724  2011-07-14 13:25  屏幕保护程序设计程序\Debug\SnowScreenSaver.pch

     文件     467968  2011-07-14 13:25  屏幕保护程序设计程序\Debug\SnowScreenSaver.pdb

     文件     176208  2011-07-14 13:25  屏幕保护程序设计程序\Debug\SnowScreenSaver.scr

     文件     156672  2011-07-14 13:25  屏幕保护程序设计程序\Debug\vc60.idb

     文件      86016  2011-07-14 13:25  屏幕保护程序设计程序\Debug\vc60.pdb

     文件       6625  2011-07-14 13:25  屏幕保护程序设计程序\SnowScreenSaver.cpp

     文件       4098  2011-07-12 12:07  屏幕保护程序设计程序\SnowScreenSaver.dsp

     文件        538  2011-07-12 10:15  屏幕保护程序设计程序\SnowScreenSaver.dsw

     文件      50176  2011-07-14 13:25  屏幕保护程序设计程序\SnowScreenSaver.ncb

     文件      48640  2011-07-14 13:25  屏幕保护程序设计程序\SnowScreenSaver.opt

     文件       1237  2011-07-14 13:25  屏幕保护程序设计程序\SnowScreenSaver.plg

     目录          0  2012-03-07 20:28  屏幕保护程序设计程序\Debug

     目录          0  2012-03-07 20:28  屏幕保护程序设计程序

----------- ---------  ---------- -----  ----

              5288467                    17


评论

共有 条评论

相关资源