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. 誰有屏幕漂雪花的個小程序

我有這么個小程序
一打開
就主動最小化了
然後屏幕上就開始飄雪花
右下角請高手幫個忙
寫一個
呃.你要弄到源碼看看