| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5750 人关注过本帖, 1 人收藏
标题:messagebox 如何设置等待时间?
只看楼主 加入收藏
g扬
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2016-6-19
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:10 
messagebox 如何设置等待时间?
messagebox 如何设置等待时间?
搜索更多相关主题的帖子: 如何 
2016-09-14 10:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:3 
高版本VFP的MESSAGEBOX()有nTimeout参数
2016-09-14 10:53
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:989
专家分:4966
注 册:2013-2-16
收藏
得分:3 
MESSAGEBOX("提示内容",0,"标题",3000)
最后那个3000就是控制时间的,时间到了,就自动关闭。在VFP9.0上测试通过。
2016-09-14 11:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:3 
VFP6没有这个功能

坚守VFP最后的阵地
2016-09-14 11:48
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册: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
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:3 
楼上挺齐全啊,支持!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)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
快速回复:messagebox 如何设置等待时间?
数据加载中...
 
   



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

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