问:怎么样在屏幕上画图?

bboos 2004-08-07 12:43:42
怎么样在屏幕上画图?
...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingtian2008 2004-08-13
  • 打赏
  • 举报
回复
up
wweilinux 2004-08-09
  • 打赏
  • 举报
回复
能作出像附件里的“画图”吗?
wwqna 2004-08-07
  • 打赏
  • 举报
回复
用bitblt函数。
熊孩子开学喽 2004-08-07
  • 打赏
  • 举报
回复
帮楼主写了一段程序,在屏幕上随机画点:

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 Long

Private 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执行就可以看到效果。
cso 2004-08-07
  • 打赏
  • 举报
回复
下面一段程序利用了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, 32i, 32j, p
  '在桌面上画图
  Next j
  Next i
  用函数GetNextWindow取得其句柄,用函数GetWindowDC取出它的虚拟设备。需要注意的是,一旦窗口被覆盖,图标就会消失。

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧