介绍
这篇文章给大家分享的是有关c++实现数字雨效果的方法是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
# include & lt; windows.h> #定义ID_TIMER 1 #定义STRMAXLEN 25//一个显示列的最大长度 #定义STRMINLEN 8//一个显示列的最小长度 LRESULT调指向(HWND,使用UINT按钮,LPARAM);////typedef struct tagCharChain//整个当作屏幕的一个显示列,这是个双向列的表 { struct tagCharChain *:;//链表的前个元素 TCHAR ch;//一个显示列中的一个字符 struct tagCharChain *下;//链表的后个元素 * pCharChain} CharChain; typedef struct tagCharColumn { CharChain *, *, *点; int x, y, iStrLen;//显示列的开始显示的x, y坐标,iStrLen是这个列的长度 int iStopTimes iMustStopTimes;//已经停滞的次数和必须停滞的次数,必须停滞的次数是随机的 * pCharColumn} CharColumn; int主要(实例句柄实例句柄,实例句柄hPrevInstance, PSTR szCmdLine, int iCmdShow) { 静态TCHAR szAppName[]=文本(“matrix"); HWND HWND; 味精味精; WNDCLASS WNDCLASS; wndclass。风格=移| CS_VREDRAW; wndclass。lpfnWndProc=指向; wndclass。cbClsExtra=0; wndclass。cbWndExtra=0; wndclass。实例句柄=实例句柄; wndclass。hIcon=LoadIcon (NULL, IDI_APPLICATION); wndclass。hCursor=LoadCursor (NULL, IDC_ARROW); wndclass。hbrBackground=(HBRUSH) GetStockObject (BLACK_BRUSH); wndclass。lpszMenuName=零; wndclass。lpszClassName=szAppName; 如果(!RegisterClass(及wndclass)) { 对话框(NULL,文本(“此程序必须运行在NT下!“),szAppName, MB_ICONERROR); 返回0; } hwnd=CreateWindow (szAppName、零 栏的| WS_THICKFRAME | WS_POPUP, 0,0, GetSystemMetrics (SM_CXSCREEN) GetSystemMetrics (SM_CYSCREEN), 空,空,实例句柄, 零); 显示窗口(hwnd, SW_SHOWMAXIMIZED);//最大化显示 UpdateWindow (hwnd); ShowCursor(假);//隐藏鼠标光标 将srand ((int) GetCurrentTime ());//初始化随机数发生器 而(GetMessage(和味精,NULL, 0, 0)) { TranslateMessage(和味精); DispatchMessage(和味精); } ShowCursor(真正的);//显示鼠标光标 返回味精。按钮; } TCHAR randomChar()//随机字符产生函数 { 返回(TCHAR) (rand () % 2 + 48);//字符0或1 } int init (cyScreen CharColumn * cc, int, int x)//初始化 { int j; cc→iStrLen=rand () % (STRMAXLEN-STRMINLEN) + STRMINLEN;//显示列的长度 cc→x=x + 3;//显示列的开始显示的x坐标 cc→y=rand () % 3, # 63; rand () % cyScreen: 0;//显示列的开始显示的y坐标 cc→iMustStopTimes=rand () % 6; cc→iStopTimes=0; cc→头=cc→当前=(pCharChain) calloc (cc→iStrLen, sizeof (CharChain));//生成显示列 (j=0;jc++实现数字雨效果的方法是什么