标题:[求助]如何让一个msgbox提示框显示三秒后不用手动点确定自动消失?
只看楼主
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
结帖率:66.67%
 问题点数:0 回复次数:14 
[求助]如何让一个msgbox提示框显示三秒后不用手动点确定自动消失?
或者我自己做个窗体当msgbox提示框!!

怎么让他显示三秒后自动消失?
搜索更多相关主题的帖子: msgbox 提示 自动 
2007-08-05 22:51
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 
这个编译后可以实现!我给你的代码里面有的啊!晕死

2007-08-06 08:56
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long

Private Const WM_CLOSE = &H10
Private Const MsgTitle As String = "3秒自动消失"
Private Sub Command1_Click()
Dim msg As String
Timer1.Enabled = True
If Compiled Then

msg = "将会消失在 3 秒后。"

Else

msg = "将会消失在 3秒后," & vbCrLf & "必须编译后才能看见效果。"

End If

MsgBox msg, vbOKOnly, MsgTitle
Timer1.Enabled = False
End Sub

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

Private Sub Timer1_Timer()

Dim hWnd As Long

hWnd = FindWindow(vbNullString, MsgTitle)
Call SendMessage(hWnd, WM_CLOSE, 0, ByVal 0&)

End Sub
Private Function Compiled() As Boolean

On Error GoTo NotCompiled

Debug.Print 1 / 0

Compiled = True

NotCompiled:

End Function
这个必须编译后才可以用的啊


2007-08-06 09:04
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 

VB QQ群:47715789
2007-08-06 09:05
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
怎么发现大部分人都是直接发帖,也不会翻翻以前的帖。
我记得那个附件里有三种不同的MsgBox,第一种就是四秒关闭的。

VB QQ群:47715789
2007-08-06 09:07
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
得分:0 
以下是引用心中有剑在2007-8-6 9:04:17的发言:

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long

Private Const WM_CLOSE = &H10
Private Const MsgTitle As String = "3秒自动消失"
Private Sub Command1_Click()
Dim msg As String
Timer1.Enabled = True
If Compiled Then

msg = "将会消失在 3 秒后。"

Else

msg = "将会消失在 3秒后," & vbCrLf & "必须编译后才能看见效果。"

End If

MsgBox msg, vbOKOnly, MsgTitle
Timer1.Enabled = False
End Sub

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

Private Sub Timer1_Timer()

Dim hWnd As Long

hWnd = FindWindow(vbNullString, MsgTitle)
Call SendMessage(hWnd, WM_CLOSE, 0, ByVal 0&)

End Sub
Private Function Compiled() As Boolean

On Error GoTo NotCompiled

Debug.Print 1 / 0

Compiled = True

NotCompiled:

End Function
这个必须编译后才可以用的啊

全程编译吗?


生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2007-08-06 09:51
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

你运行就知道了!直接生成exe就可以了!


2007-08-06 09:54
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
得分:0 
以下是引用心中有剑在2007-8-6 9:54:53的发言:

你运行就知道了!直接生成exe就可以了!

我试了

除了vbAbortRetryIgnore和vbYesNo之外其他的都可以在设定的时间到时消失

这2个为什么不行


生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2007-08-06 11:22
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
得分:0 
Joforn那个不错,LZ试下吧

Repeat  Life=Study;Until (death);
2007-08-07 21:03
团囝
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-4
得分:0 
Private Sub Command1_Click()
' this shows a messagebox that will be dismissed after 4 seconds

' set the callback timer and pass our application defined ID (NV_CLOSEMSGBOX)
' set the time for 3 seconds (3000& microseconds)
SetTimer hWnd, NV_CLOSEMSGBOX, 3000&, AddressOf TimerProc

' call the messagebox API function
Call MessageBox(hWnd, "显示四秒后自动关闭的MsgBox对话框,爽吧?", _
"Self Closing Message Box", MB_ICONQUESTION Or MB_TASKMODAL)

End Sub



我就是把TOFORN的那个的4改成了2,就是2秒后自动关的了...

2007-08-07 21:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-160546-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.261125 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved