注冊(cè) 登錄
Office中國(guó)論壇/Access中國(guó)論壇 返回首頁(yè)

的個(gè)人空間 http://ctxi.cn/?0 [收藏] [復(fù)制] [分享] [RSS]

日志

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

已有 2212 次閱讀2008-3-29 13:50 |個(gè)人分類:API

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

Public Sub newDoEvents() '這個(gè)是比較簡(jiǎn)單,功能較少
        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() '這個(gè)可以按自己的要求定義,接收到什么消息才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個(gè)函數(shù)就不怕影響循環(huán)中的運(yùn)算效率了

發(fā)表評(píng)論 評(píng)論 (1 個(gè)評(píng)論)

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

facelist doodle 涂鴉板

您需要登錄后才可以評(píng)論 登錄 | 注冊(cè)

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:40 , Processed in 0.069039 second(s), 15 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部