永发信息网

求数字雨源代码或者动态图片

答案:1  悬赏:70  手机版
解决时间 2021-03-06 11:13
求数字雨源代码或者动态图片
最佳答案
程序经 VC 编辑成功


  #include <windows.h>

  #define ID_TIMER 1
  #define STRMAXLEN 25 //一个显示列的最大长度
  #define STRMINLEN 8 //一个显示列的最小长度

  LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
  //////////////////////////////////////////////////////////////////
  //////////////////////////////////////////////////////////////////
  typedef struct tagCharChain //整个当作屏幕的一个显示列,这是个双向列表
  {
   struct tagCharChain *prev; //链表的前个元素
   TCHAR ch; //一个显示列中的一个字符
   struct tagCharChain *next; //链表的后个元素
  }CharChain, *pCharChain;

  typedef struct tagCharColumn
  {
   CharChain *head, *current, *point;
   int x, y, iStrLen; //显示列的开始显示的x,y坐标,iStrLen是这个列的长度
   int iStopTimes, iMustStopTimes; //已经停滞的次数和必须停滞的次数,必须停滞的次数是随机的
  }CharColumn, *pCharColumn;

  int main(HINSTANCE hInstance, HINSTANCE hPrevInstance,
   PSTR szCmdLine, int iCmdShow)
  {
   static TCHAR szAppName[] = TEXT ("matrix") ;
   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 (BLACK_BRUSH) ;
   wndclass.lpszMenuName = NULL ;
   wndclass.lpszClassName = szAppName ;

   if(!RegisterClass (&wndclass))
   {
   MessageBox (NULL, TEXT ("此程序必须运行在NT下!"), szAppName, MB_ICONERROR) ;
   return 0;
   }

   hwnd = CreateWindow (szAppName, NULL,
   WS_DLGFRAME | WS_THICKFRAME | WS_POPUP,
   0, 0,
   GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
   NULL, NULL, hInstance,
   NULL) ;

   ShowWindow (hwnd, SW_SHOWMAXIMIZED) ; //最大化显示
   UpdateWindow (hwnd) ;
   ShowCursor(FALSE); //隐藏鼠标光标

   srand ((int) GetCurrentTime ()) ; //初始化随机数发生器
   while (GetMessage (&msg, NULL, 0, 0))
   {
   TranslateMessage (&msg) ;
   DispatchMessage (&msg) ;
   }
   ShowCursor(TRUE); //显示鼠标光标
   return msg.wParam ;
  }

  TCHAR randomChar() //随机字符产生函数
  {
   return (TCHAr)(rand()%(126-33)+33); //33到126之间
  }

  int init(CharColumn *cc, int cyScreen, int x) //初始化
  {
   int j;
   cc->iStrLen = rand()%(STRMAXLEN-STRMINLEN) + STRMINLEN; //显示列的长度
   cc->x = x+3 ; //显示列的开始显示的x坐标
   cc->y =rand()%3?rand()%cyScreen:0; //显示列的开始显示的y坐标
   cc->iMustStopTimes = rand()%6 ;
   cc->iStopTimes = 0 ;
   cc->head = cc->current =
   (pCharChain)calloc(cc->iStrLen, sizeof(CharChain)); //生成显示列
   for(j=0; j<cc->iStrLen-1; j++)
   {
   cc->current->prev = cc->point; //cc->point一个显示列的前个元素
   cc->current->ch = '\0';
   cc->current->next = cc->current+1; //cc->current+1一个显示列的后个元素
   cc->point = cc->current++; //cc->point = cc->current; cc->current++;
   }
   cc->current->prev = cc->point; //最后一个节点
   cc->current->ch = '\0';
   cc->current->next = cc->head;
   cc->head->prev = cc->current; //头节点的前一个为此链的最后一个元素

   cc->current = cc->point = cc->head; //free掉申请的内存要用current当参数
   cc->head->ch = randomChar(); // 对链表头的 元素填充
   return 0;
  }

  LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  {
   HDC hdc ;
   //ctn 用来确定一个显示链是否 向下前进,如果等待次数超过必须等待的次数,ctn就代表要向下前进
   int i, j, temp, ctn; //j为一个显示链中除链表头外的在屏幕上显示的y坐标,temp绿色过度到黑色之用
   static HDC hdcMem;
   HFONT hFont;
   static HBITMAP hBitmap;
   static int cxScreen, cyScreen; //屏幕的宽度 高度.
   static int iFontWidth=10, iFontHeight=15, iColumnCount; //字体的宽度 高度, 列数
   static CharColumn *ccChain;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
牛奶燕麦片适合哪些人吃
成都地铁1,2号线什么时候收车?
七点五十分是多少度
威猛先生厨房重油污清洁剂弄在脸上怎么清洗
居立防盗门西峰直销处地址有知道的么?有点事
打死你用日语怎么说,用中文来表示
什么动漫9.5分以上,9.5分以上,恶魔奶爸我看
玻璃结冰怎么办现在冬天每天早上车前挡风玻璃
【却造句】……却………造句
大誉超市这个地址在什么地方,我要处理点事
覃记华生排挡地址在什么地方,想过去办事
梦见家里死人办丧事
iPhone4s,铃声愈来愈小怎么回事?
下面分别为反射弧及膝跳反射模式图。请据此分
有没有什么软件可以导入手机号码然后自动添加
推荐资讯
市建委的下列行为中,当事人不服,可以申请行
里信村这个地址在什么地方,我要处理点事
从甘肃张掖市甘州区到黑龙江哈尔滨市乘火车的
我的手机拔了sim卡就可以充电,插回去就不能
大樱桃嫁接一般用什么方法比较好活?
明西园地址好找么,我有些事要过去,
我跟老婆婚后感情变得很淡怎么提升夫妻感情
北柳利民超市在哪里啊,我有事要去这个地方
电压使电路中的什么形成了电流
求考研调剂指导,思想政治教育,330
欧卡2为什么升级出新的零件但是到维修站没有
连云港市新车管所的新联系方式?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?