根据我所知道的,DoEvents首先要保证当前函数保留在堆栈中。
同时放弃控制权,交给系统响应消息。因此,用此函数有时可以调整消息的响应,而不需要API,巴顿就在它网站(www.easthot.net)中给过这样的例子。
同时,此函数还能根据当前进程中的窗体句柄确定程序显示的窗体数。
因此,有时不需要用Forms集合。巴顿在www.easthot.net回复时也用过这一方便。另外,巴顿还讲过此函数尽可能不要在有ByRef传参方式的函数中使用。原因,大家可以动脑筋想一想。至于后面的东西,我想要以此功能去推才行!
欢迎前去我们的网站:www.easthot.net
同时放弃控制权,交给系统响应消息。因此,用此函数有时可以调整消息的响应,而不需要API,巴顿就在它网站(www.easthot.net)中给过这样的例子。
同时,此函数还能根据当前进程中的窗体句柄确定程序显示的窗体数。
因此,有时不需要用Forms集合。巴顿在www.easthot.net回复时也用过这一方便。另外,巴顿还讲过此函数尽可能不要在有ByRef传参方式的函数中使用。原因,大家可以动脑筋想一想。至于后面的东西,我想要以此功能去推才行!
欢迎前去我们的网站:www.easthot.net
解决方案 »
- WINSOCK文件传输
- 紧急求助!!!谢谢大家了!!!
- 斑马打印机zebra105SL有玩过得没有
- 能否给个多线程例子!急
- 在线求教vb如何调用oracle 10g中的存储过程!急!!
- 点击treeview节点显示word文档问题(在线等待,解决马上给分)
- 关于RichtextBox的Find函数使用的问题
- 如何检测跳出的警告窗口?帮忙up者有分,解决问题的再加分
- 如果 msflexgrid里只剩下一条记录怎么removeitem将他删除?
- 小问题:"SIZEOF"?
- 50分请大家看看http://www.csdn.net/Expert/TopicView1.asp?id=910123,给点意见!
- 如何用VB语句在所编的程序中实现打印ACCESS报表的功能?
哪来那么麻烦!
DoEvents一共就这几条语句:private function DoEvents as long
Dim msg as MSG
dim count as long
while PeekMessage(msg, 0, 0, 0,PM_REMOVE)
if (Not TranslateAccelerator(msg.hwnd, hSysAccel, msg)) then
TranslateMessage msg
DispatchMessage msg
endif
count = count + 1
wend
doevents = count
end function只是举例,无法运行(因为系统快捷表无法取得)
Dim msg as MSG
dim count as long
while PeekMessage(msg, 0, 0, 0,PM_REMOVE)'API 作用是试图读消息队列,如果没有消息就直接返回 '试图翻译消息(用于快捷键处理)。其中hSysAccel我们无法取得,
'所以这代码不能执行
'当然,如果你不想让程序有快捷键功能,去掉这个if,直接翻译消息就可以执行了
if (Not TranslateAccelerator(msg.hwnd, hSysAccel, msg)) then
'翻译消息
TranslateMessage msg
'投递消息
DispatchMessage msg
endif
'一共处理了多少消息
count = count + 1
wend
'返回处理的消息数目
doevents = count
end function