参数表----------------------------------------------------- Angle 光照倾角,取值0到90之间,以角度为单位 WidthOfArea 光照区宽度,取值大于1的整数,以像素为单位 Speed 光照区运动速度,取值大于1的整数 EnhanceRatio 光照强度参数,取值大于1的整数 -----------------------------------------------------
好,原理就这么多,现在我们开始动手实现吧!打开VB6.0,选择新建标准EXE工程,在主窗口form1中绘制下表中所列控件并设置窗体和各控件的属性。
控件 属性 设置 Form1 Name Form1 ScaleMode 3-pixel PictureBox Name PicDest ScaleMode 3-pixel Picture 背景图 PictureBox Name PicSource ScaleMode 3-pixel Picture 主体图 Label Name LblA Caption 角度 Textbox Name TxtA Text 30 Label Name LblW Caption 宽度 Textbox Name TxtW Text 15 Label Name LblE Caption 强度 Textbox Name TxtE Text 15 Label Name LblS Caption 速度 Textbox Name TxtS Text 1 CommandButton Name Cmd1 Caption 开始特效
生成最后的窗体。 在form1的代码编辑窗口中添加如下代码 Option Explicit Const pi = 3.1415926 ’api函数声明------------------------------------------------------------ Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As Any, Source As Any, ByVal Length As Long) ’拷贝内存 Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, _ ByVal X As Long, ByVal Y As Long) As Long ’取像素值 Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, _ ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long ’设置像素值 Private Sub cmd1_Click() cmd1.Enabled = False MakeSpark txtA, txtW, txtS, 0, txtE, 65, 10 cmd1.Enabled = True End Sub Private Sub MakeSpark(Angle As Long, WidthOfArea As Long, _ Speed As Long, MaskColor As Long, _ EnhanceRatio As Single, OffsetX As Long, OffsetY As Long) ’熠熠生辉效果 ’参数表----------------------------------------------------- ’Angle 光照倾角 ’WidthOfArea 光照区宽度 ’Speed 光照区运动速度 ’MaskColor 主体图的屏蔽色 |