我想做一个简单的图片移动的程序
没添加AniGif1的时候 窗体可以正常响应 keydown事件
加入了控件 form1 就失去了焦点不能正常响应了
想问下各位大侠 怎么才能让form1 一直获得焦点?
Private Sub form_keydown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
AniGif1.FileName = App.Path & "\image\上跑.gif"
Case vbKeyDown
AniGif1.FileName = App.Path & "\image\下跑.gif"
Case vbKeyLeft
AniGif1.FileName = App.Path & "\image\左跑.gif"
Case vbKeyRight
AniGif1.FileName = App.Path & "\image\右跑.gif"
End Select
End Sub
没添加AniGif1的时候 窗体可以正常响应 keydown事件
加入了控件 form1 就失去了焦点不能正常响应了
想问下各位大侠 怎么才能让form1 一直获得焦点?
Private Sub form_keydown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
AniGif1.FileName = App.Path & "\image\上跑.gif"
Case vbKeyDown
AniGif1.FileName = App.Path & "\image\下跑.gif"
Case vbKeyLeft
AniGif1.FileName = App.Path & "\image\左跑.gif"
Case vbKeyRight
AniGif1.FileName = App.Path & "\image\右跑.gif"
End Select
End Sub
AppActivate "Form1"
'按下 X 退出, 按下上下左右键 信息提示
Option Explicit '强制宣告定义变量
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Long
Const vbKeyAlt = vbKeyMenu 'VB很像把它给漏了,自己加上吧
Private Sub Form_Load()
'将窗体居中显示 (屏幕宽度减去窗体的宽度)除以2 , (屏幕高度减去窗体的高度)除以2
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Me.Show
Timer1.Interval = 10: Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
'检查是否热键被按下
If GetAsyncKeyState(vbKeyControl) And GetAsyncKeyState(vbKeyF9) Then Me.Caption = "按下了Ctrl + F9"
If GetAsyncKeyState(vbKeyShift) And GetAsyncKeyState(vbKeyF10) Then Me.Caption = "按下了Shift + F10"
If GetAsyncKeyState(vbKeyAlt) And GetAsyncKeyState(vbKeyF11) Then Me.Caption = "按下了Alter + F11"
If GetAsyncKeyState(vbKeyControl) And GetAsyncKeyState(vbKeyAlt) And GetAsyncKeyState(vbKeyF10) Then Me.Caption = "按下了Ctrl + F10"
If GetAsyncKeyState(vbKeyX) Then Unload Me
If GetAsyncKeyState(vbKeyDown) Or GetAsyncKeyState(vbKeyUp) Then Me.Caption = "按下了上下键"
If GetAsyncKeyState(vbKeyLeft) Or GetAsyncKeyState(vbKeyRight) Then Me.Caption = "按下了左右键"
End Sub
http://cbm666.com/demo2.exe
这是我获得国家级高新技术奖的高速路系统 流程演示 使用的就是 AniGif