精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓...多媒体相关...〓〓>>好玩的代码

主题:好玩的代码
发信人: vglt()
整理人: fishy(2000-06-08 15:44:20), 站内信件
刚才看到了一段很有意思的代码。
Option Explicit
 Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As L
ong
 Private Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, _

         ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y
2 As Long) As Long
 Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long,
 _
         ByVal hObject As Long) As Long
 Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As L
ong) As Long
 Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, 
ByVal hdc As Long) As Long
 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Lon
g)
 Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor 
As Long) As Long
 Private Declare Function GetBkColor Lib "gdi32" (ByVal hdc As Long) A
s Long

Private hbrush As Long, hdc5 As Long

Private Sub Form_Load()
Dim dx  As Long, dy As Long
Dim rx1 As Long, rx2 As Long, ry1 As Long, ry2 As Long
Dim i As Long, j As Long, bcolor As Long
Dim DispCnt As Long

DispCnt = 60 
hdc5 = GetDC(0)
bcolor = GetBkColor(Me.hdc) 
hbrush = CreateSolidBrush(bcolor) 
Call SelectObject(hdc5, hbrush)
dx = Me.Width \ (DispCnt * 2)
dy = Me.Height \ (DispCnt * 2)
j = 1
For i = DispCnt To 1 Step -1
    rx1 = (Me.Left + dx * (i - 1)) \ Screen.TwipsPerPixelX
    ry1 = (Me.Top + dy * (i - 1)) \ Screen.TwipsPerPixelY
    rx2 = rx1 + dx * 2 * j \ Screen.TwipsPerPixelX
    ry2 = rx1 + dy * 2 * j \ Screen.TwipsPerPixelY
    j = j + 1
    Call Rectangle(hdc5, rx1, ry1, rx2, ry2)
    Sleep (1)
Next i
Call ReleaseDC(0, hdc5)
Call DeleteObject(hbrush)
End Sub


--
回复时,请勾中“将本文章寄一份给原作者”这一项,谢谢。

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.111.16.249]

[关闭][返回]