不要在代碼中放置不必要的DoEvents語句,尤其是在時間要求高的循環中。遵循這個原則,至少能在循環中的每N次反復時才執行DoEvents語句,從而增強效率。比如使用下面的語句:
If(loopNdxMod10)=0ThenDoEvents
如果只是使用DoEvents來屏蔽鼠標以及鍵盤操作,那麼就可以在事件隊列中存在待處理項目時調用它。通過API函數GetInputState來檢查這個條件的發生:
DeclareFunctionGetInputStateLib"user32"Alias"GetInputState"()AsLong
'...
IfGetInputState()ThenDoEvents
->