首页 ● 新闻 ● 搜索 ● 短信 ● 分类 ● 聊天 ● 导航
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 高级编程 > 正文
用Visual Basic实现屏幕振动

http://www.sina.com.cn 2001/11/22 16:46 中国电脑教育报

  文/云飞

  也许你有过这样的经历:好友寄来一封信,附件里有个小程序,你不假思索地打开了。这时,意想不到的事情发生了,整个屏幕抖动起来,怎么也控制不住。你顿时头大如斗,脑中一片空白,瘫倒在电脑旁......

  用VB来实现屏幕振动,非常容易做到。如果你有兴趣,就跟我来吧!

  编程思路

  将整个屏幕抓到一个窗体内,将另外一个窗体的背景置为黑色作为背景,随机不断改变窗体的位置就产生了振动效果。

  界面设计

  首先创建两个窗体Form1和Form2,将Autoredraw属性设为True,Borderstyle属性设为None(即无边框),其中Form2作为背景,再将其BackColor属性设为黑色。在Form1上放置一定时器控件Timer1,将其Interval值设为100。

  程序代码

  Option Explicit

  Dim screenhwnd, screendc, rc

  Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long '以下API函数可以通过VB自带的API文本浏览器复制而来。

  Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

  Private Declare Function GetDesktopWindow Lib "user32" () As Long

  Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

  Private Sub Form_DblClick()

  End '双击窗体结束程序

  End Sub

  Private Sub Form_Load()

  Randomize

  Form2.Width = Screen.Width '调整窗体的大小、位置使之覆盖整个屏幕

  Form2.Height = Screen.Height + 100

  Form2.Top = 0

  Form2.Left = 0

  Form1.Top = 0

  Form1.Left = 0

  Form1.Width = Screen.Width

  Form1.Height = Screen.Height + 100

  screenhwnd = GetDesktopWindow() '取得桌面窗口的句柄

  screendc = GetDC(screenhwnd)

  rc = BitBlt(Form1.hdc, 0, 0, Form1.ScaleWidth, Form1.ScaleHeight, screendc, 0, 0, &&HCC0020) '把整个屏幕抓到窗体中

  rc = ReleaseDC(screenhwnd, screendc)

  Form2.Show

  Form1.Show

  Form1.ZOrder '使窗体居于顶层

  End Sub

  Private Sub Timer1_Timer()

  '随机改变窗体的位置

  Form1.Top = Form1.Top + Rnd * 100

  Form1.Left = Form1.Left + Rnd * 100

  Form1.Top = Form1.Top - Rnd * 100

  Form1.Left = Form1.Left - Rnd * 100

  End Sub

  OK,你可以实验一下振动效果了,双击屏幕恢复。



【发表评论】【初学者园地】【科技聊天】【关闭窗口】

新 闻 查 询

 相关链接
VB通过DAO访问Access数据库 (2001/11/08 14:06)
VB.NET中的面向对象编程特征 (2001/10/23 13:23)
用VB6实现隐藏和显示“程序”选单 (2001/10/18 15:41)
在VB6中实现图像的变换 (2001/09/21 16:23)
用VB6编程监控CPU的资源状况 (2001/09/13 12:33)
在VB中实现文字的图片填充效果 (2001/09/11 12:39)
用VB编程让文本滚动更平滑 (2001/09/07 09:13)
利用VB制作MP3播放列表 (2001/08/20 15:27)
用VB设计自己的E-mail系统 (2001/08/09 14:25)


科技时代意见反馈留言板 电话:010-82612286 或 010-82628888-3488   欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网