标题:messagebox 如何设置等待时间?
只看楼主
g扬
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2016-6-19
结帖率:0
已结贴  问题点数:20 回复次数:10 
messagebox 如何设置等待时间?
messagebox 如何设置等待时间?
搜索更多相关主题的帖子: 如何 
2016-09-14 10:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
高版本VFP的MESSAGEBOX()有nTimeout参数
2016-09-14 10:53
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:3 
MESSAGEBOX("提示内容",0,"标题",3000)
最后那个3000就是控制时间的,时间到了,就自动关闭。在VFP9.0上测试通过。
2016-09-14 11:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:3 
VFP6没有这个功能

坚守VFP最后的阵地
2016-09-14 11:48
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:3 
8.0也有这个功能的

只求每天有一丁点儿的进步就可以了
2016-09-14 12:31
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:0 
MessageBox() 函数超时参数 nTimeout 的是是非非

1. MessageBox() 函数在 VFP 7 时,增加了第四个超时参数;
=Messagebox("这里是提示文字,请不要回复。", 0, "标题名称", 2000)  && 超时 2 秒则退出

2. 4096 : 系统模式
VFP 是非系统模式,当点击 MessageBox 窗口之外,该窗口就会跑到后面,所以加 4096 位移,成为系统模式,比如:
=Messagebox("这里是提示文字,请不要回复。", 0+4096, "标题名称", 2000)  && 超时 2 秒则退出

3. WSH 是 MessageBox 的宿主
但在 VFP 9 + XP 中存在 Bug
VBS 脚本:(正确)
set WShell = CREATEOBJECT("WScript.Shell")
WShell.Popup "超时 2 秒则退出!", 2, "标题名称", 1

VFP 代码:(VFP 9 错误,VFP 6 也许行)
WShell = CREATEOBJECT("WScript.Shell")
WShell.Popup("超时 2 秒则退出!", 2, "标题名称", 1)

4. API 方式
VFP 6-9 支持:
Declare Integer WTSSendMessage In WtsApi32;
    INTEGER hServer,;
    LONG SessionId,;
    STRING @pTitle,;
    LONG TitleLength,;
    STRING @pMessage,;
    LONG MessageLength,;
    LONG MsgStyle,;
    LONG MsgTimeout,;
    LONG @pResponse,;
    INTEGER bWait

#Define WTS_CURRENT_SERVER_HANDLE 0

Local cTitle, cMsg, nResponse
cTitle = "标题名称"
cMsg = "这里是提示文字,请不要回复。"
nResponse = 0
hServer = 0
nTimeout = 3  && 超时秒数

Clear
? WTSSendMessage(hServer, 1, ;
    @cTitle, Len(cTitle), ;
    @cMsg, Len(m.cMsg), 0, nTimeout, @nResponse, 1)

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-09-15 16:58
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:3 
楼上挺齐全啊,支持!

活到老,学到老! http://www. E-mail:hu-jj@
2016-09-15 19:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:3 
以下是引用厨师王德榜在2016-9-14 11:02:12的发言:

MESSAGEBOX("提示内容",0,"标题",3000)
最后那个3000就是控制时间的,时间到了,就自动关闭。在VFP9.0上测试通过。
VFP9.0上测试通过
2016-09-15 20:03
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:0 
5. MessageBoxTimeout API 函数,可控制消息框自动关闭
*!*    未公开的函数(Windows 2000 没有这个函数):

Declare Integer MessageBoxTimeout In WIN32API As _apiMessageBoxTimeout ;
  Integer nhWnd, ;
  String  lpText, ;
  String  lpCaption, ;
  Integer uType, ;
  Integer wLanguageId, ;
  Integer dwTimeout

*!*    nhWnd:窗口句柄
*!*    lpText:弹出消息框的内容
*!*    lpCaption:弹出消息框的标题
*!*    uType:按钮类型,可相加,每组只能取一个类型
*!*    wLanguageId:语言ID,默认写 0 就可以了
*!*    dwTimeout:等待时间,单位为毫秒,3 秒后关闭就写 3000

nhWnd = 0
lpText = "这里是提示文字,请不要回复。"
lpCaption = "标题名称"
uType = 0
wLanguageId = 0
dwTimeout = 3000
? _apiMessageBoxTimeout(nhWnd, lpText, lpCaption, uType, wLanguageId, dwTimeout)


[此贴子已经被作者于2016-9-16 12:51编辑过]


团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-09-16 10:25
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:3 
学习下
2016-09-16 18:10



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




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

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