标题:【分享 MESSAGEBOX】这是你心目中的消息框吗?
只看楼主
isealer
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:33
专家分:110
注 册:2017-8-25
结帖率:75%
已结贴  问题点数:20 回复次数:8 
【分享 MESSAGEBOX】这是你心目中的消息框吗?
软件需求:VFP 8.0 以上

MsgBox() 函数使用说明:此函数基于 VFP 系统函数 MESSAGEBOX() 修改扩展而成,
与原 MESSAGEBOX() 实现完美兼容,基本用法请参看 VFP 关于 MESSAGEBOX() 的说明,
核心代码借鉴了两个老外的帖子,表示感谢!

修改了返回值:选取第一、二、三个按钮分别返回 1,2,3,超时返回 -1,
若关闭按钮可用,点击关闭或按 Esc 键等同于选取最后一个按钮








程序代码:
Function MsgBox( eText,nType,cTitle,nTimeout, ;
    cButtonText,nTransparency,cIcon )
******************************************************************************************************************************************
**    eText 必选,其它均为可选参数
**    第一个数值型参数必须是 nType
**    第二个数值型参数必须是 nTimeout,并且 nType 不可省略
**    第三个数值型参数必须是 nTransparency,并且 nType、nTimeout 不可省略
**    第一个字符型参数必须是 cTitle
**    第二个字符型参数必须是 cButtonText,并且 cTitle 不可省略
**    第三个字符型参数必须是 cIcon,并且 cTitle、cButtonText 不可省略
**    cButtonText 示例    :'按钮 &1,\禁用按钮,按钮(&B)'
**    cButtonText        :三个按钮分别显示为    按钮 1    禁用按钮    按钮(B)
**    cButtonText        :此时可用 ALT+1 和 ALT+B 选取第 1 / 3 个按钮,第 2 个按钮为禁用状态,不可选取
**    cButtonText        :最多替换 3 个按钮文本,使用    ,    (逗号)分隔
**    cButtonText        :第一位加上    \    (反斜杠)以禁用按钮
**    cButtonText        :若 nType 规定的按钮数量与 cButtonText 规定的替换文本个数不一致,将自动调整按钮数量,并依次进行替换
**    nTransparency        :不透明度有效作用值 0 - 100<1 , >99 不透明,<30 几乎不可见,建议设置 >70
**    cIcon            :图标文件完整路径(*.ico)
******************************************************************************************************************************************



msgbox.zip (3.34 KB)



[此贴子已经被作者于2017-12-9 13:00编辑过]

收到的鲜花
  • mywisdom882017-12-09 14:08 送鲜花  20朵   附言:好文章
搜索更多相关主题的帖子: MESSAGEBOX 按钮 参数 字符型 禁用 
2017-12-09 12:23
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:4 
非常感谢提供下载支持
2017-12-09 19:08
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:4 
学习啦,谢谢!
2017-12-09 19:22
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:4 
自己定义一个表单就行,可以更具特色,与整个程序风格一致。

活到老,学到老! http://www. E-mail:hu-jj@
2017-12-10 08:44
jyxfp
Rank: 2
等 级:论坛游民
帖 子:23
专家分:81
注 册:2013-2-9
得分:4 
真是太好了,好用,谢谢分享。
个人认为:最多替换 3 个按钮文本,当按钮文本大于3个时会出错,建议红色处更改一下,忽略掉多余的按钮文本:
oMsgBox=Createobject('clsMessageBox')
If !Empty(cButtonText)    && 按钮文本不为空才更改
    nWdCnt=Getwordcount(cButtonText,',')
    For i=1 To Min(nWdCnt,3)    &&此处原程序为nWdCnt
        oMsgBox.aButtons[i]=Alltrim(Getwordnum(cButtonText,i,','))
    Next
……
2017-12-10 22:49
isealer
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:33
专家分:110
注 册:2017-8-25
得分:0 
回复 5楼 jyxfp
的确必须改一下,避免非预期的错误
但要改上面一行
nWdCnt=Min(Getwordcount(cButtonText,','),3)


[此贴子已经被作者于2017-12-11 09:30编辑过]

2017-12-11 09:07
呆狐狸1
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2017-3-9
得分:4 
好东西,收藏!
2017-12-11 15:40
镜花水烟
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2016-3-20
得分:4 
好东西,谢谢楼主
2017-12-13 09:56
zhaihs77
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-12-15
得分:0 
百度找到,非常好,谢谢楼主
2019-12-15 09:57



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




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

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