我发现在我的一个程序中,当我让它弹出消息框时,如MsgBox "给我停住"
我没点确定,不管它,我却发现计时器仍然在工作(仍然在修改窗体上的数据),郁闷,这是怎么一回事?如果计时器事件不能在interval时间里完成,会不会累计下去?最后导致interval实际上跟等于是0一样?
用以下面代码,当点击command1时,好象timer就不写时间了,为何,出现这两种情况?
Dim mTime As DatePrivate Sub Command1_Click()
MsgBox "给我停住"End SubPrivate Sub Form_Resize()
Timer1.Interval = 2 * 1000
mTime = Time
Print mTime
End SubPrivate Sub Timer1_Timer()
Print Time, Format(Time - mTime, "hh:mm:ss")
mTime = Time
End Sub
我没点确定,不管它,我却发现计时器仍然在工作(仍然在修改窗体上的数据),郁闷,这是怎么一回事?如果计时器事件不能在interval时间里完成,会不会累计下去?最后导致interval实际上跟等于是0一样?
用以下面代码,当点击command1时,好象timer就不写时间了,为何,出现这两种情况?
Dim mTime As DatePrivate Sub Command1_Click()
MsgBox "给我停住"End SubPrivate Sub Form_Resize()
Timer1.Interval = 2 * 1000
mTime = Time
Print mTime
End SubPrivate Sub Timer1_Timer()
Print Time, Format(Time - mTime, "hh:mm:ss")
mTime = Time
End Sub
所以当\ MsgBox "给我停住" 弹出后直到你点确定或者取消(此对话筐消息)为止,才能执行其他的代码!
Private Sub Timer1_Timer()
MsgBox "给我停住"Print Time, Format(Time - mTime, "hh:mm:ss")
mTime = Time
End Sub
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
我没点确定,不管它,我却发现计时器仍然在工作(仍然隔一段时间就触发计时器事件,修改了窗体上的数据),郁闷,这又是怎么一回事?
我没点确定,不管它,我却发现计时器仍然在工作(仍然隔一段时间就触发计时器事件,修改了窗体上的数据),郁闷,这又是怎么一回事?
2中可能。
你用的MessageBox函数,并且hwnd填的0你用的是SetTimer函数, 并且指定了不属于window的回掉函数
如以下代码。 SetWindowPos Me.Hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE MsgBox "OK!"
'置前
SetWindowPos Me.Hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE窗体中共有几个计时器,难道是置前置后引起的?
改成:
Private Sub Command1_Click()
Timer1.Enabled = False
If MsgBox("给我停住", vbOKOnly) = vbOK Then Timer1.Enabled= True
End Sub就可以了