下面一段程序利用了API函数在屏幕上实现画图标功能(注:p是图标的句柄,可以由ExtractIcon取得)。 deskhwnd = GetNextWindow(hwnd, GW_HWNDLAST) '取最下面一个窗口 deskdc = GetWindowDC(deskhwnd) '取窗口的情景设备 For i=0 To Screen.Width/32/15 '将屏幕坐标单位换算成“Pixel”,并计算可画的图标数 For j=0 To Screen.Height/32/15 DrawIcon deskdc, 32i, 32j, p '在桌面上画图 Next j Next i 用函数GetNextWindow取得其句柄,用函数GetWindowDC取出它的虚拟设备。需要注意的是,一旦窗口被覆盖,图标就会消失。
帮楼主写了一段程序,在屏幕上随机画点:Private Declare Function SetPixelV Lib "gdi32" (ByVal HDC As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function timeGetTime Lib "winmm.dll" () As LongPrivate Sub Form_Load() Me.ScaleMode = 3 Me.Visible = False Dim X As Long, Y As Long, I As Long Dim DC As Long, Wid As Long, Hei As Long Wid = Screen.Width Hei = Screen.Height DC = GetDC(0) '获得屏幕句柄 I = timeGetTime Do While timeGetTime - I < 100000 X = Rnd * Wid Y = Rnd * Hei SetPixelV DC, X, Y, RGB(Rnd * 256, Rnd * 256, Rnd * 256) '画点 DoEvents Loop End End Sub不需要控件,直接将代码贴到程序里面,按F5执行就可以看到效果。
deskhwnd = GetNextWindow(hwnd, GW_HWNDLAST)
'取最下面一个窗口
deskdc = GetWindowDC(deskhwnd)
'取窗口的情景设备
For i=0 To Screen.Width/32/15
'将屏幕坐标单位换算成“Pixel”,并计算可画的图标数
For j=0 To Screen.Height/32/15
DrawIcon deskdc, 32i, 32j, p
'在桌面上画图
Next j
Next i
用函数GetNextWindow取得其句柄,用函数GetWindowDC取出它的虚拟设备。需要注意的是,一旦窗口被覆盖,图标就会消失。
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As LongPrivate Sub Form_Load()
Me.ScaleMode = 3
Me.Visible = False
Dim X As Long, Y As Long, I As Long
Dim DC As Long, Wid As Long, Hei As Long
Wid = Screen.Width
Hei = Screen.Height
DC = GetDC(0) '获得屏幕句柄
I = timeGetTime
Do While timeGetTime - I < 100000
X = Rnd * Wid
Y = Rnd * Hei
SetPixelV DC, X, Y, RGB(Rnd * 256, Rnd * 256, Rnd * 256) '画点
DoEvents
Loop
End
End Sub不需要控件,直接将代码贴到程序里面,按F5执行就可以看到效果。