| Putting DoEvents in loops to make your app responsive to user input is a common but expensive practice. Use GetInputState instead. GetInputState returns 1 when a mouse is clicked or key pressed. It has much less overhead and can be called every so often as need be. When an input event occurs, then call DoEvents. Private Declare Function GetInputState Lib "user32" () As Long Dim bUserCancel As Boolean Private Sub cmdCancel_Click() bUserCancel = True End Sub Private Sub cmdGo_Click() Dim lCtr As Long bUserCancel = False For lCtr = 0 To 1000000 ' ' A long loop that may need to be interupted. ' If lCtr Mod 100 Then If GetInputState() <> 0 Then ' ' A mouse or keyboard event occured. ' DoEvents If bUserCancel Then Exit For End If End If Next End Sub |
A Better DoEvents |
India web developer web development India | Freelance web development ecommerce web developer | Prayagasoft - web designer India, Ecommerce developer india, Ecommerce design