//
//
//
//
//
//
//
//
//
//
软件Tags:
易语言按键粒子特效源码系统结构:键盘钩子处理,时钟周期事件,添加定点爆炸,粒子位置更新,分层图形更新,创建自窗口句柄,UpdateLayeredWindow,创建,GetMdc,销毁,BitBlt,GetDC,SetWindowLong,CallWindowProc,SetTimer,GetWindowRect,GetWindowLong,API_UpdateLayeredWindow,CreateCompatibleDC,CreateDIBSection,SelectObject,DeleteObject,DeleteDC,ReleaseDC,GetForegroundWindow,SetWindowsHookEx,GetModuleHandleA,CopyMemory,RtlMoveMemoryJ,CallNextHookEx,UnhookWindowsHookEx,AttachThreadInput,GetCurrentThreadId,GetWindowThreadProcessId,GetCaretPos,GetFocus,ClientToScreen,KillTimer, ======分层窗口程序集 || ||------_分层窗口_创建完毕 || ||------_分层窗口_将被销毁 || ||------键盘钩子处理 || || ======粒子绘制类 || ||------_初始化 || ||------_销毁 || ||------时钟周期事件 || ||------添加定点爆炸 || ||------粒子位置更新 || ||------分层图形更新 || ||------创建自窗口句柄 || ||------UpdateLayeredWindow || || ======内存场景 || ||------_初始化 || ||------_销毁 || ||------创建 || ||------GetMdc || ||------销毁 || || ======_启动窗口程序集 || ||------_按钮1_被单击 || ||------__启动窗口_将被销毁 || || ======调用的Dll || ||---[dll]------BitBlt || ||---[dll]------GetDC || ||---[dll]------SetWindowLong || ||---[dll]------CallWindowProc || ||---[dll]------SetTimer || ||---[dll]------GetWindowRect || ||---[dll]------GetWindowLong || ||---[dll]------API_UpdateLayeredWindow || ||---[dll]------CreateCompatibleDC || ||---[dll]------CreateDIBSection || ||---[dll]------SelectObject || ||---[dll]------DeleteObject || ||---[dll]------DeleteDC || ||---[dll]------ReleaseDC || ||---[dll]------GetForegroundWindow || ||---[dll]------SetWindowsHookEx || ||---[dll]------GetModuleHandleA || ||---[dll]------CopyMemory || ||---[dll]------RtlMoveMemoryJ || ||---[dll]------CallNextHookEx || ||---[dll]------UnhookWindowsHookEx || ||---[dll]------AttachThreadInput || ||---[dll]------GetCurrentThreadId || ||---[dll]------GetWindowThreadProcessId || ||---[dll]------GetCaretPos || ||---[dll]------GetFocus || ||---[dll]------ClientToScreen || ||---[dll]------KillTimer 调用的DLL命令: .DLL命令BitBlt,整数型,"gdi32","BitBlt",,将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容非零表示成功,零表示失败。会设置GetLastError .参数hDestDC,整数型,,目标设备场景 .参数x,整数型,,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示 .参数y,整数型,,同上 .参数nWidth,整数型,,欲传输图象的宽度和高度 .参数nHeight,整数型,,同上 .参数hSrcDC,整数型,,源设备场景。如光栅运算未指定源,则应设为0 .参数xSrc,整数型,,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示 .参数ySrc,整数型,,同上 .参数dwRop,整数型,,传输过程要执行的光栅运算; .DLL命令GetDC,整数型,"user32","GetDC",,获取指定窗口的设备场景指定窗口的设备场景句柄,出错则为0 .参数hwnd,整数型,,将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC; .DLL命令SetWindowLong,整数型,"user32","SetWindowLongA",,在窗口结构中为指定的窗口设置信息指定数据的前一个值 .参数hwnd,整数型 .参数nIndex,整数型 .参数dwNewLong,整数型 .DLL命令CallWindowProc,整数型,"user32","CallWindowProcA",,将消息传答窗口函数 .参数lpPrevWndFunc,整数型 .参数hwnd,整数型 .参数msg,整数型 .参数wParam,整数型 .参数lParam,整数型 .DLL命令SetTimer,整数型,"user32","SetTimer",,安装系统定时器 .参数hWnd,整数型 .参数nIDEvent,整数型 .参数uElapse,整数型 .参数lpTimerFunc,整数型 .DLL命令GetWindowRect,整数型,"user32","GetWindowRect",,获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内非零表示成功,零表示失败。会设置GetLastError .参数hwnd,整数型,,想获得范围矩形的那个窗口的句柄 .参数lpRect,RECT,,RECT,屏幕坐标中随同窗口装载的矩形; .DLL命令GetWindowLong,整数型,"user32","GetWindowLongA",,从指定窗口的结构中取得信息由nIndex决定。零表示出错。会设置GetLastError .参数hwnd,整数型,,欲为其获取信息的窗口的句柄 .参数nIndex,整数型,,欲取回的信息,可以是下述任何一个常数:;GWL_EXSTYLE:扩展窗口样式;GWL_STYLE:窗口样式;GWL_WNDPROC:该窗口的窗口函数的地址;GWL_HINSTANCE:拥有窗口的实例的句柄;GWL_HWNDPARENT:该窗口之父的句柄。不要用SetWindowWord来改变这个值;GWL_ID:对话框中一个子窗口的标识符;GWL_USERDATA:含义由应用程序规定;DWL_DLGPROC:这个窗口的对话框函数地址;DWL_MSGRESULT:在对话框函数中处理的一条消息返回的值;DWL_USER:含义由应用程序规定; .DLL命令API_UpdateLayeredWindow,整数型,,"UpdateLayeredWindow" .参数hwnd,整数型,,当前窗口的句柄 .参数hdcDst,整数型,,当前窗口的DC .参数pptDst,POINTAPI,,当前窗口在屏幕的左上角位置(相当于::SetWindowPos()函数) .参数psize,SIZE,,当前窗口在的宽度和高度 .参数hdcSrc,整数型,,内存缓存DC .参数pptSrc,POINTAPI,,内存缓存的左上角坐标(可用于裁剪内存缓存) .参数crKey,整数型 .参数pblend,BLENDFUNCTION,,混合样式 .参数dwFlags,整数型 .DLL命令CreateCompatibleDC,整数型,,"CreateCompatibleDC",,创建内存场景 .参数hdc,整数型 .DLL命令CreateDIBSection,整数型,"gdi32.dll","CreateDIBSection",,该函数创建应用程序可以直接写入的、与设备无关的位图(DIB)。一般情况下后面4参数都为NULL .参数hdc,整数型,,设备环境句柄。如果iUsage的值是DIB_PAL_COLORS,那么函数使用该设备环境的逻辑调色板对与设备无关位图的颜色进行初始化。 .参数pbmi,BITMAPINFO,,指向BITMAPINFO结构的指针,该结构指定了与设备无关位图的各种属性,其中包括位图的维数和颜色。 .参数iUsage,整数型,,指定由pbmi参数指定的BITMAPINFO结构中的成员bmiColors数组包含的数据类型(要么是逻辑调色板索引值,要么是原文的RGB值)。 .参数ppvBits,整数型,,指向一个变量的指针,该变量接收一个指向DIB位数据值的指针。 .参数hSection,整数型,,文件映射对象的句柄。函数将使用该对象来创建DIB(与设备无关位图)。该参数可以是NULL。 .参数dwOffset,整数型,,如果hSection为NULL,那么系统将为与设备无关位图(DIB)分配内存。在这种情况下,函数CreateDIBSection将忽略参数dwOffset,应用程序无法在以后获取指向内存的句柄。通过调用GetObject函数来填充的DIBSECTION结构成员dshSection也将成为NULL。 .DLL命令SelectObject,整数型,,"SelectObject" .参数hdc,整数型,,一个设备场景的句柄 .参数hObject,整数型,,一个画笔、位图、刷子、字体或区域的句柄 .DLL命令DeleteObject,整数型,"gdi32","DeleteObject",,用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放非零表示成功,零表示失败 .参数hObject,整数型,,一个GDI对象的句柄; .DLL命令DeleteDC,整数型,"gdi32","DeleteDC",,删除专用设备场景或信息场景,释放所有相关窗口资源。不要将它用于GetDC函数取回的设备场景执行成功则为非零,失败则为零 .参数hdc,整数型,,将要删除的设备场景在vb里使用不要将它用于由vbhdc属性获取的设备场景句柄; .DLL命令ReleaseDC,,,"ReleaseDC" .参数hwnd,整数型,,要释放的设备场景相关的窗口句柄 .参数hdc,整数型,,要释放的设备场景句柄 .DLL命令GetForegroundWindow,整数型,"user32","GetForegroundWindow",,获得前台窗口的句柄。这里的“前台窗口”是指前台应用程序的活动窗口前台窗口的句柄 .DLL命令SetWindowsHookEx,整数型,"user32","SetWindowsHookExA",,安装钩子过程 .参数idHook,整数型 .参数lpfn,子程序指针 .参数hmod,整数型 .参数dwThreadId,整数型 .DLL命令GetModuleHandleA,整数型,,"GetModuleHandleA" .参数a,整数型,,0 .DLL命令CopyMemory,,"kernel32","RtlMoveMemory" .参数pDest,按键信息 .参数pSrc,整数型 .参数ByteLen,整数型 .DLL命令RtlMoveMemoryJ,,"kernel32.dll","RtlMoveMemory" .参数Destination,按键信息 .参数Source,整数型 .参数Length,整数型 .DLL命令CallNextHookEx,整数型,,"CallNextHookEx" .参数hook,整数型 .参数nCode,整数型 .参数wParam,整数型 .参数lParam,整数型 .DLL命令UnhookWindowsHookEx,整数型,"user32.dll","UnhookWindowsHookEx",,卸载一个钩字 .参数hook,整数型 .DLL命令AttachThreadInput,整数型,"user32","AttachThreadInput",,通常,系统内的每个线程都有自己的输入队列。本函数(既“连接线程输入函数”)允许线程和进程共享输入队列。连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态以及输入队列状态都会进入共享状态非零表示成功,零表示失败,会设置会GetLastError .参数idAttach,整数型,,欲连接线程的标识符(ID) .参数idAttachTo,整数型,,与idAttach线程连接的另一个线程的标识符 .参数fAttach,整数型,,TRUE(非零)连接,FALSE撤消连接; .DLL命令GetCurrentThreadId,整数型,"kernel32","GetCurrentThreadId",,获取当前线程一个唯一的线程标识符当前的线程标识符 .DLL命令GetWindowThreadProcessId,整数型,"user32","GetWindowThreadProcessId",,;获取与指定窗口关联在一起的一个进程和线程标识符拥有窗口的线程的标识符 .参数hwnd,整数型,,指定一个变量,用于装载拥有那个窗口的一个进程的标识符 .参数lpdwProcessId,整数型,,指定窗口句柄; .DLL命令GetCaretPos,整数型,"user32","GetCaretPos",,判断插入符的当前位置非零表示成功,零表示失败。会设置GetLastError .参数lpPoint,POINTAPI,传址,POINTAPI,这个结构会随同插入符在窗口客户坐标系统中的位置载入;那个窗口是插入符的父窗口; .DLL命令GetFocus,整数型,"user32","GetFocus",,获得拥有输入焦点的窗口的句柄拥有焦点的那个窗口的句柄。如没有窗口拥有输入焦点,则返回零 .DLL命令ClientToScreen,整数型,"user32","ClientToScreen",,判断窗口内以客户区坐标表示的一个点的屏幕坐标非零表示成功,零表示失败 .参数hwnd,整数型,,判断客户区坐标时那个窗口的句柄 .参数lpPoint,POINTAPI,传址,POINTAPI,用hwnd窗口的客户区坐标表示的点,这个参数会包含屏幕坐标系统中相同的点; .DLL命令KillTimer,整数型,"user32","KillTimer",,中止定时器 .参数hwnd,整数型 .参数nIDEvent,整数型
