rss地图
社区应用
帖子
相册
日志
群组
热榜
分享
记录
社区服务
闪电银行
转帖工具
邀请注册
勋章中心
道具中心
打工赚钱
找回密码
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
管理监督
下拉
用户名
UID
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
微博帐号登录
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
闪电联盟论坛
闪电软件园
每日打卡
电魂充值
勋章中心
我的帖子
论坛资料设置
帖子
日志
用户
版块
群组
帖子
搜索
wind8black
tiboo
pink87
wind8gray
linkt
wind
wind8purple
新年
jyezu87
植树节
经典蓝色
购买邀请后未收到邀请联系sdbeta@qq.com
闪电联盟软件论坛
>
『技术问题交流』
>
用VB如何实现屏幕振动?
发帖
回复
返回列表
新帖
1717
阅读
0
回复
用VB如何实现屏幕振动?
[复制链接]
上一主题
下一主题
离线
gsl27
UID:5632
注册时间
2008-05-07
最后登录
2023-11-18
发帖
4831
搜Ta的帖子
精华
0
访问TA的空间
加好友
用道具
UID: 5632
闪电元勋
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
发帖
4831
今日发帖
最后登录
2023-11-18
加关注
发消息
只看楼主
倒序阅读
使用道具
楼主
发表于: 2008-06-18 16:53:38
自助获取论坛邀请码
用VB如何实现屏幕振动?
用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,你可以实验一下振动效果了,双击屏幕恢复。
共
条评分
回复
举报
发帖
回复
返回列表
隐藏
快速跳转
闪电联盟欢迎你!
『新人实习会员交流区』
≡闪电联盟资讯区≡
『实时追踪 [IT区] 』
【论坛信息速递】
≡闪电技术共享区≡
『软件下载交流』
『绿色软件下载』
『技术问题交流』
『资源美化模型专版』
≡闪电资源交流区≡
『虚拟物品交易区』
『免费资源交流区』
≡闪电娱乐休闲区≡
『休闲茶馆』
『图音画坊』
≡闪电站务管理≡
『 站务公告 』
『 申请专区 』
关闭
关闭
选中
1
篇
全选