发布网友 发布时间:2024-10-23 23:46
共1个回答
热心网友 时间:2024-11-01 10:09
Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
这两条是调用DLL(动态连接库),调用后可以当函数一样使用。
如第一个EnableWindow是函数名"user32"是DLL文件的地址,user32是表示在用户程序集中,kernel32是表示在内核中,同样也可以用绝对地址如“C:\XXXX.DLL”,ByVal hwnd As Long,ByVal 是变要传输的形式有ByVal和ByRef两种他们的区别是ByRef在调用函数后可以返回数值而ByVal不可以,Hwnd ,是变量名,Long是数据类型,声明后就可以当做函数EnableWindow(ByVal hwnd As Long, ByVal fEnable As Long)一样调用。不同的DLL有不同的动能具体要看说明。
Private Sub Command1_Click()
Call EnableWindow(Me.hwnd, 0)
'调用EnableWindow,Me.hwnd是窗口的句柄,0是相应的参数,表示对当前窗口执行对应于0的命令
'Me在本窗口使用时相当于本窗口名称,如load Me,Unload Me
Me.Caption = "现在拒绝KeyPress, MouseClick"
'窗口的标题改为"现在拒绝KeyPress, MouseClick"
Dim i As Long '定义I
For i = 1 To 100 ‘For 和Next之间循环100次
Call Sleep(100) '调用Sleep DLL
DoEvents '空动作
Next i
Me.Caption = "现在解除了"
'窗口的标题改为"现在解除了"
Call EnableWindow(Me.hwnd, 1)
'调用EnableWindow,Me.hwnd是窗口的句柄,0是相应的参数,表示对当前窗口执行对应于1的命令
End Sub