恶作剧程序:无限窗口抖动(VB源码,纯API练习)

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Const SWP_NOSIZE = &H1
Private Const HWND_TOPMOST = -1
Private Sub Command1_Click()
    Timer1.Enabled = False
End Sub
Private Sub Form_Load()
    Me.Hide
    App.TaskVisible = False
End Sub
Private Sub Timer1_Timer()
    Dim atWindow As Long
    Dim myRECT As RECT
    
    atWindow = GetForegroundWindow
    GetWindowRect atWindow, myRECT
    
    Randomize
    WhereGo = Fix(Rnd * 4)
    Select Case WhereGo
        Case 0
            SetWindowPos atWindow, 0, myRECT.Left + myRnd(), myRECT.Top, 0, 0, SWP_NOSIZE
        Case 1
            SetWindowPos atWindow, 0, myRECT.Left - myRnd(), myRECT.Top, 0, 0, SWP_NOSIZE
        Case 2
            SetWindowPos atWindow, 0, myRECT.Left, myRECT.Top + myRnd(), 0, 0, SWP_NOSIZE
        Case 3
            SetWindowPos atWindow, 0, myRECT.Left, myRECT.Top - myRnd(), 0, 0, SWP_NOSIZE
    End Select
End Sub
Private Function myRnd() As Integer
    Randomize
    myRnd = Fix(Rnd * 12)
End Function
摘要:VB源码,图形处理,VB恶搞程序,屏幕抖动   再分享一个Vb恶搞程序,屏幕抖动下雪,下雪API声明(摘录):   GetDC()功能是获取指定窗体的设备场景的句柄(hDC),用参数0则可以获取整个屏幕的场景句柄   GetPixel用于取得场景(这里是整个屏幕)中某点的颜色值   释放由GetDC()获取的设备场景句柄,否则可能造成系统锁死   定义“区域”数据结构,但实际上并没有用到,因为仅需在函数InvalidateRect中传递一个空的RECT参数   Dim rect1 As RECT   Private Const ScrnWidth = 1024 ‘屏幕宽度(单位:像素)   Private Const ScrnHight = 768 ‘屏幕高度(单位:像素)   Private Const SnowCol = &HFEFFFE ‘雪花颜色   Private Const SnowColDown = &HFFFFFF ‘积雪颜色   Private Const SnowColDuck = &HFFDDDD ‘深色积雪颜色   Private Const SnowNum = 500 ‘同一时间飘动的雪花数量   Dim hDC1 As Long ‘存储桌面窗口设备句柄   Dim pData(SnowNum) As POINTAPI ‘存储每个雪花的位置信息   Dim pColor(SnowNum) As Long ‘存储画出雪花前屏幕原来的颜色   Dim Vx As Integer ‘雪花总体水平飘行速度   Dim Vy As Integer ‘雪花总体垂直下落速度   Dim PVx As Integer ‘单个雪花实际水平飘行速度   Dim PVy As Integer ‘单个雪花实际垂直飘行速度   确定当前位置没有与另一个雪花重叠,否则返回0,用于防止由于不同雪花重叠造成雪花乱堆,分别获取ColorCmp与对比点的蓝、绿、红部分的差值,画出一帧,即重画所有雪花位置一次,设置新的位置,i Mod 3用于将雪花分为三类采用不同速度,以便形成层次感。   注意,测试时候如果要停止程序,请在任务栏右键直接关闭程序字符串即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值