1. 我也想要那个雪花的小程序啊啊,可以发一个么谢谢了,QQ745587150

[email protected]
已经发送到你QQ邮箱了哈。注意查收 。
我的电邮是:jia**@163***

2. 请问在自己桌面上飘雪花的那个小程序是什么啊

软件我也有,叫Snow for Windows.
很漂亮。在网络上搜一下吧。

3. 求一个电脑桌面上飘小雪花然后堆起来的小程序

已发邮箱,别被当做垃圾了!

【电脑应用·桌面设置专面面观·各取所需属】http://blog.sina.com.cn/s/blog_4a1faae60102dw7a.html

4. 我想要圣诞雪花桌面小程序 ,有雪花飘落,音乐, 邮箱是[email protected]~~~谢谢啦~~

发给你了,请查看!

5. 求雪花小程序C++源代码,能运行无误的

#include<iostream.h>
#include <windows.h>
#include <math.h>
#include <stdlib.h>
#define ID_TIMER 1
#define SNOWNUM 500 // 雪花数量
#define CONTRAST 50 // 对比度
#define YSTART 5 // 用于确定雪花初始时的y坐标
#define SNOWCR RGB(0xFF, 0xFF, 0xFF) //雪花的颜色—白色
#define SNOWGATHERCR RGB(0xDB, 0xDB, 0xFF) //堆积雪花的颜色
typedef struct tagSnow
{
POINT ptSnowsPos[SNOWNUM]; //用于保存各个雪花的坐标
COLORREF crOrg[SNOWNUM]; //用于画雪花前屏幕原来的颜色
int iVx, iVy, iAllVx, iAllVy;
}Snow;
void initSnow(HDC hdc, Snow *sn, int iSnow, int cxScreen);
int GetContrast(HDC hdc, Snow *sn, int iSnow);
void drawSnow(HDC hdc, Snow *sn, int cxScreen);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("clsDeskSnow") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if(!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ;
return 0;
}
hwnd = CreateWindow (szAppName, TEXT ("桌面下雪"),
WS_MINIMIZEBOX | WS_SYSMENU,
CW_USEDEFAULT, CW_USEDEFAULT,
240, 120,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
static int cxScreen, cyScreen; //屏幕宽高度(单位:像素)
static int iTimes, iLoopTimes=100;
static Snow snowDream;
int i;
switch (message)
{
case WM_CREATE:
cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
srand ((int) GetCurrentTime ()) ; //初始化随机数发生器
snowDream.iAllVx = (unsigned)rand()%3 - 1; //雪花总体水平飘行速度(-1,0,1)
snowDream.iAllVy = (unsigned)rand()%2 + 1; //雪花总体垂直下落速度(1,2)
hdc = GetDC(NULL); //检索整个屏幕的设备上下文环境
for(i=0; i <SNOWNUM; i++)
{
snowDream.ptSnowsPos[i].x = rand() % cxScreen; //一个雪花开始下落的x坐标
snowDream.ptSnowsPos[i].y = rand() % YSTART; //一个雪花开始下落的y坐标
snowDream.crOrg[i] = GetPixel(hdc, snowDream.ptSnowsPos[i].x,
snowDream.ptSnowsPos[i].y); //获取给定点的原来的颜色值
}
ReleaseDC(NULL, hdc);
SetTimer(hwnd, ID_TIMER, 10, NULL); //定时器,10毫秒
return 0 ;

case WM_DISPLAYCHANGE: //当显示分辨率改变的时候
cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
return 0;

case WM_TIMER:
hdc = GetDC(NULL); //检索整个屏幕的设备上下文环境
if(iTimes > iLoopTimes)
{
iTimes = 0;
iLoopTimes = 50 + (unsigned)rand()%50;
if(snowDream.iAllVx != 0)
snowDream.iAllVx = 0;
else
snowDream.iAllVx = (unsigned)rand()%3 - 1; //雪花总体水平飘行速度(-1,0,1)
snowDream.iAllVy = (unsigned)rand()%2 + 1; //雪花总体垂直下落速度(1,2)
}
else
iTimes++;
drawSnow(hdc, &snowDream, cxScreen);
ReleaseDC(NULL, hdc);
return 0;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, TEXT ("桌面下雪!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
KillTimer(hwnd, ID_TIMER); // 中止定时器
InvalidateRect(NULL, NULL, TRUE); // 刷新桌面
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
void initSnow(HDC hdc, Snow *sn, int iSnow, int cxScreen) //初始化第iSnow个雪花
{
sn->ptSnowsPos[iSnow].x = (unsigned)rand() % cxScreen; //x范围整个屏幕宽
sn->ptSnowsPos[iSnow].y = (unsigned)rand() % YSTART; //y范围离屏幕顶部YSTART像素点以内
sn->crOrg[iSnow] = GetPixel(hdc, sn->ptSnowsPos[iSnow].x,
sn->ptSnowsPos[iSnow].y ) ;//获取给定点的原来的颜色值
}
int GetContrast(HDC hdc, Snow *sn, int iSnow)
{
int iR, iG, iB;
COLORREF crCmp;

if(0 == sn->iVx) //若水平速度为0,则取比其大一个像素的正下方的点
crCmp = GetPixel(hdc, sn->ptSnowsPos[iSnow].x, sn->ptSnowsPos[iSnow].y + 1);
else //若水平速度>0,取右下方的点。 <0则取左下方的点
crCmp = GetPixel(hdc, sn->ptSnowsPos[iSnow].x + (sn->iVx>0?1:-1), sn->ptSnowsPos[iSnow].y + 1);
if(crCmp==SNOWCR) //如果为雪花的颜色
return 0;
//分别获取crCmp与对比点的蓝、绿、红部分的差值
iB = abs((crCmp>>16)&0xFF - (sn->crOrg[iSnow]>>16)&0xFF);
iG = abs((crCmp>>8)&0xFF - (sn->crOrg[iSnow]>>8)&0xFF);
iR = abs((crCmp)&0xFF - (sn->crOrg[iSnow])&0xFF);
return (iR+iG+iB)/3;
}
void drawSnow(HDC hdc, Snow *sn, int cxScreen)
{
int i;
for(i=0; i <SNOWNUM; i++)
{
//如果保存的原来的颜色不是雪花的颜色
if(sn->crOrg[i] != SNOWCR)
SetPixel(hdc, sn->ptSnowsPos[i].x, sn->ptSnowsPos[i].y,
sn->crOrg[i]); //还原上一个位置的颜色
sn->iVx = sn->iAllVx*(i%3+1); //雪花的x飘动速度
sn->iVy = sn->iAllVy*(i%3+1); //雪花的y飘动速度
//rand()%5-2使雪花下落的时候 有抖动效果
sn->ptSnowsPos[i].x += sn->iVx+rand()%5-2; //雪花的下一个x坐标
sn->ptSnowsPos[i].y += sn->iVy+1; //雪花的下一个y坐标
//获取给定点的原来的颜色值
sn->crOrg[i] = GetPixel(hdc, sn->ptSnowsPos[i].x, sn->ptSnowsPos[i].y);

if(CLR_INVALID == sn->crOrg[i]) //如果获取颜色失败,即雪花飘出了屏幕
{
initSnow(hdc, sn, i, cxScreen); //重新初始化 雪花
continue;
}
if(sn->crOrg[i] != SNOWCR) //若当前点的颜色 不等于 雪花的颜色
{
if(SNOWGATHERCR == sn->crOrg[i]) //当前点的颜色=堆积的雪的颜色
{ //设置为雪花的颜色
SetPixel(hdc, sn->ptSnowsPos[i].x, sn->ptSnowsPos[i].y, SNOWCR);
sn->crOrg[i] = SNOWCR;
//initSnow(hdc, sn, i, cxScreen); //重新初始化 雪花
}
else if(GetContrast(hdc, sn, i) > 50) //若对比度>50
{ //堆积雪花
SetPixel(hdc, sn->ptSnowsPos[i].x, sn->ptSnowsPos[i].y, SNOWGATHERCR);
SetPixel(hdc, sn->ptSnowsPos[i].x-1, sn->ptSnowsPos[i].y+1, SNOWGATHERCR);
SetPixel(hdc, sn->ptSnowsPos[i].x+1, sn->ptSnowsPos[i].y+1, SNOWGATHERCR);
initSnow(hdc, sn, i, cxScreen); //重新初始化 雪花
}
else //对比度 <50,不堆积,画出这帧雪花.等下次的时候再还原此点原本的颜色.以产生飘动效果
SetPixel(hdc, sn->ptSnowsPos[i].x, sn->ptSnowsPos[i].y, SNOWCR);
}
}
这是我根据网上的修改的桌面下雪的程序,在vc6.0上新建win32可也运行,希望对你有点帮助
}

6. 桌面下雪的小程序

查看文章
让你的桌面下起小雪系列之编写2008年01月13日 星期日 下午 01:38这个冬天又没下雪;
那就让电脑来下雪吧;
以下是用delphi的全部代码;
program Snow;
uses
Windows, Messages;
const
SnowNumber = 500; // 雪点数量-1
type
SnowNode = record
Point: TPoint; // 雪点位置
Color: Integer; // 先前颜色
Speed: Integer; // 下落速率
nMove: Integer; // 下落距离
Stick: Integer; // '粘连'度
end;
var
SnowNodes: array[0..SnowNumber] of SnowNode; // 雪点数组
hTimer: Integer; // '随机风向'时钟句柄
CrWind: Integer; // 当前'风向' ( -1 ~ 1 )
CrStep: Integer; // 当前循环步数(用于限速)
ScreenWidth, ScreenHeight: Integer; // 屏幕尺寸

// 取屏幕尺寸 -> ScreenWidth, ScreenHeight
procere GetScreenSize;
begin
ScreenWidth := GetSystemMetrics(SM_CXSCREEN);
ScreenHeight := GetSystemMetrics(SM_CYSCREEN);
end;
// '随机风向'时钟
procere TimerProc(hWnd: HWND; uMsg: UINT; idEvent: UINT; dwTime: DWORD); stdcall;
begin
SetTimer(0, hTimer, (Random(27)+4) * 500, @TimerProc); // 重设下次风向改变时间
if (CrWind <> 0) then CrWind := 0 else CrWind := Random(3) - 1; // 修改风向
end;
// 初始化雪点数组
procere InitSnowNodes;
var
hScreenDc, J: Integer;
begin
hScreenDc := CreateDC('DISPLAY', nil, nil, nil);
for J := 0 to SnowNumber do
begin
SnowNodes[J].Point.X := Random(ScreenWidth);
SnowNodes[J].Point.Y := Random(ScreenHeight);
SnowNodes[J].Color := GetPixel(hScreenDc, SnowNodes[J].Point.X, SnowNodes[J].Point.Y);
SnowNodes[J].Speed := Random(5) + 1; // 几次循环作下落一次 (1~5)
SnowNodes[J].nMove := Random(SnowNodes[J].Speed)+1; // 每次下落距离(1~5)
SnowNodes[J].Stick := 30 - Random(SnowNodes[J].Speed); // '粘连'度(几次循环作一次粘连判断)
end;
DeleteDC(hScreenDc);
end;
// 移动雪点 ..
procere MoveSnowNodes;
var
hScreenDc, I, X, Y: Integer;
begin
hScreenDc := CreateDC('DISPLAY', nil, nil, nil);
for I := 0 to SnowNumber do
begin
// 控制雪点下降速率
if (CrStep mod SnowNodes[I].Speed) <> 0 then Continue;
// 恢复上次被覆盖点
if GetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y) = $FFFFFF then
SetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y, SnowNodes[I].Color);
// 根据风向作随机飘落
X := SnowNodes[I].Point.X + Random(3) - 1 + CrWind;
Y := SnowNodes[I].Point.Y + SnowNodes[I].nMove;
// 积雪(停留)效果处理
if ( (CrStep mod SnowNodes[I].Stick) = 0 ) // 降低积雪概率 ..
and ( GetPixel(hScreenDc, X, Y) <> GetPixel(hScreenDc, X, Y+1) ) // '边缘'判断
and ( GetPixel(hScreenDc, X-1, Y) <> GetPixel(hScreenDc, X-1, Y+1) )
and ( GetPixel(hScreenDc, X+1, Y) <> GetPixel(hScreenDc, X+1, Y+1) ) then
begin
// 稍微调整坐标
if GetPixel(hScreenDc, X, Y-1) = GetPixel(hScreenDc, X, Y-2) then Dec(Y) // 上边缘
else if GetPixel(hScreenDc, X, Y+1) = GetPixel(hScreenDc, X, Y+2) then Inc(Y); // 下边缘
Inc(X, CrWind);
// 画三个点(雪花)
SetPixel(hScreenDc, X, Y, $FFFFFF);
SetPixel(hScreenDc, X+1, Y+1, $FFFFFF);
SetPixel(hScreenDc, X-1, Y+1, $FFFFFF);
// 重生雪点
SnowNodes[I].Point.Y := Random(10);
SnowNodes[I].Point.X := Random(ScreenWidth);
SnowNodes[I].Color := GetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y);
end else
begin
if (X < 0) or (X > ScreenWidth) or (Y > ScreenHeight) then // 超出范围则重生雪点
begin
SnowNodes[I].Point.Y := Random(10);
SnowNodes[I].Point.X := Random(ScreenWidth);
SnowNodes[I].Color := GetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y);
end else
begin
// 保存颜色并绘制雪点
SnowNodes[I].Color := GetPixel(hScreenDc, X, Y);
SetPixel(hScreenDc, X, Y, $FFFFFF);
// 此时保存新雪点位置
SnowNodes[I].Point.X := X;
SnowNodes[I].Point.Y := Y;
end;
end;
end;
DeleteDC(hScreenDc);
Inc(CrStep);
end;
var
ThreadMsg: TMsg; // 标准消息结构体
Frequency: Int64; // 高性能定时器频率
StartCt, EndCt: Int64; // 高性能定时器计数
ElapsedTime: Extended; // 时间间隔
begin
Randomize; GetScreenSize; InitSnowNodes; // 初始化
QueryPerformanceFrequency(Frequency); // 高性能定时器频率
hTimer := SetTimer(0, 0, Random(5)*500, @TimerProc); // 安装随机风向定时器
RegisterHotKey(0, 0, MOD_CONTROL, ORD('L')); // 注册退出热键 Ctrl+L
while TRUE do // 消息循环
begin
QueryPerformanceCounter(StartCt); // 执行运算前 计数值
if PeekMessage(ThreadMsg, 0, 0, 0, PM_REMOVE) then // 取到消息
begin
case ThreadMsg.message of
WM_TIMER:
TimerProc(0, 0, 0, 0); // 预设风向改变时间已到
WM_HOTKEY:
begin
KillTimer(0, hTimer); // 删除随机风向定时器
UnregisterHotKey(0, 0); // 删除退出热键 Ctrl+L
InvalidateRect(0, nil, TRUE); // 刷新屏幕
Break; // 跳出消息循环
end;
WM_DISPLAYCHANGE:
begin
GetScreenSize; // 重新取屏幕尺寸
InitSnowNodes; // 初始化雪点数组
end;
end;
end;
MoveSnowNodes; // 移动雪点
QueryPerformanceCounter(EndCt); // 执行运算后计数值
ElapsedTime := (EndCt-StartCt)/Frequency;
if (ElapsedTime < 0.0005) then Sleep(2) // 简单限速
else if (ElapsedTime < 0.0010) then Sleep(1)
else if (ElapsedTime < 0.0015) then Sleep(0);
end;
end.

7. 如何让电脑分屏显示雪花小程序呢

最好是有双出输出接口显卡:

达到2个显示器同时显示不同画面且互不影响。

8. 求一个名为“礼物”的小程序,打开之后桌面开满玫瑰花,还有一个雪花的 小程序

oooo

9. 谁有屏幕漂雪花的个小程序

我有这么个小程序
一打开
就主动最小化了
然后屏幕上就开始飘雪花
右下角请高手帮个忙
写一个
呃.你要弄到源码看看