注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

的個人空間 http://m.mzhfr.cn/?0 [收藏] [復制] [分享] [RSS]

日志

[轉(zhuǎn)]DoEvents語句的API升級版,它可以讓你的程序循環(huán)速度比使用DoEvents更快

已有 2370 次閱讀2008-3-29 13:50 |個人分類:API

Public Declare Function GetInputState Lib "user32" () As Long

Public Sub newDoEvents() '這個是比較簡單,功能較少
        If GetInputState() <> 0 then DoEvents
End Sub

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Public Const QS_HOTKEY = &H80
Public Const QS_KEY = &H1
Public Const QS_MOUSEBUTTON = &H4
Public Const QS_MOUSEMOVE = &H2
Public Const QS_PAINT = &H20
Public Const QS_POSTMESSAGE = &H8
Public Const QS_SENDMESSAGE = &H40
Public Const QS_TIMER = &H10
Public Const QS_ALLINPUT = (QS_SENDMESSAGE Or QS_PAINT Or QS_TIMER Or QS_POSTMESSAGE Or QS_MOUSEBUTTON Or QS_MOUSEMOVE Or QS_HOTKEY Or QS_KEY)
Public Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)
Public Const QS_INPUT = (QS_MOUSE Or QS_KEY)
Public Const QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY)
Public Declare Function GetQueueStatus Lib "user32" (ByVal qsFlags As Long) As Long

Public Function cGetInputState() '這個可以按自己的要求定義,接收到什么消息才DoEvents
    Dim qsRet As Long
    qsRet = GetQueueStatus(QS_HOTKEY Or QS_KEY Or QS_MOUSEBUTTON Or QS_PAINT)
    if qsRet<>0 then DoEvents
End Function
'有了上面2個函數(shù)就不怕影響循環(huán)中的運算效率了

發(fā)表評論 評論 (1 個評論)

回復 tanhong 2008-9-7 16:14
很受啟發(fā).

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-13 07:28 , Processed in 0.157854 second(s), 15 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部