如何实现不用等待用户回应的提示信息(或消息框)?

jxgzay 2005-05-07 07:55:59
在处理数据中,可能要等待30秒以上时间,想显示一行消息框提示(比如:“正在处理,请稍候...”,运行完毕,再 msgbox“运行完毕!”),如用MSGBOX "正在处理,请稍候...",那么必须用户回应才继续,而且回应后,消息框也没了。
如何实现不用等待用户回应的提示信息呢?
...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmzorro 2005-05-07
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3729/3729523.xml?temp=.8245508
xmzorro 2005-05-07
  • 打赏
  • 举报
回复
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type
Dim lii As LASTINPUTINFO


Private Sub Form_Load()
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Dim mytime As Double
lii.cbSize = Len(lii)
GetLastInputInfo lii
mytime = GetTickCount - lii.dwTime
Debug.Print mytime & "ms"

If mytime \ 1000 > 10 Then Unload Me '如果超过十秒就关闭

End Sub
---------------------
VB中其它进程可用上面的代码,抄自tztz520所写,2K以上系统运行。
xmzorro 2005-05-07
  • 打赏
  • 举报
回复
这个问题在我的笔记本里有一套源码。你搜索一下,以前已经有人提问过了!
DengXingJie 2005-05-07
  • 打赏
  • 举报
回复
VERSION 5.00
Begin VB.Form frmMsg
Caption = "訊息視窗(按任一鍵繼續)"
ClientHeight = 1635
ClientLeft = 60
ClientTop = 345
ClientWidth = 4575
ControlBox = 0 'False
LinkTopic = "Form2"
ScaleHeight = 1635
ScaleWidth = 4575
StartUpPosition = 2 '螢幕中央
Begin VB.Timer Timer1
Interval = 1000
Left = 840
Top = 1440
End
Begin VB.CommandButton btnClose
Cancel = -1 'True
Caption = "關 閉"
Default = -1 'True
Height = 375
Left = 0
TabIndex = 2
Top = 960
Width = 4575
End
Begin VB.PictureBox Picture1
Height = 495
Left = 0
ScaleHeight = 435
ScaleWidth = 4515
TabIndex = 0
Top = 120
Width = 4575
Begin VB.TextBox txtMsg
BeginProperty Font
Name = "新細明體"
Size = 12
Charset = 136
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 440
Left = 0
TabIndex = 1
Top = 0
Width = 4510
End
End
End
Attribute VB_Name = "frmMsg"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public TS As Integer
Dim CurS As Integer

Private Sub btnClose_Click()
Unload Me
End Sub

Private Sub btnClose_KeyPress(KeyAscii As Integer)
Unload Me
End Sub


Private Sub Form_Activate()
btnClose.SetFocus
End Sub


Private Sub Form_Load()
CurS = 0
Me.Caption = "訊息視窗(按任一鍵繼續) " & TS & "秒後自動關閉"
End Sub

Private Sub Timer1_Timer()
CurS = CurS + 1
Me.Caption = "訊息視窗(按任一鍵繼續) " & TS - CurS & "秒後自動關閉"
If CurS >= TS Then
Unload Me
End If
End Sub

把以上代碼放入一空白Txt文檔中,另存為frm文件即可
在調用窗口中輸入以下代碼即可測試
Private Sub Command1_Click()
frmMsg.txtMsg = "訊息測試"
frmMsg.TS = 10
frmMsg.Show
End Sub
guolibin 2005-05-07
  • 打赏
  • 举报
回复
自定义窗体
warmage 2005-05-07
  • 打赏
  • 举报
回复
加个时钟???
Gutta 2005-05-07
  • 打赏
  • 举报
回复
自己定义一个消息窗体,然后加一个定时器,时间由实际情况而定。

在窗体显示时把定时器打开,然后在定时器事件中:
Unload me
cxbkkk 2005-05-07
  • 打赏
  • 举报
回复
加一个时钟,在程序里加一个,从你运行开始计算,结束的时候就停,中间程序没停你的提示信息就不结束,一旦那边程序运行完了,这边就运行unload me

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧