| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3429 人关注过本帖
标题:【分享 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: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1733
专家分:3329
注 册:2012-2-29
收藏
得分:4 
学习啦,谢谢!
2017-12-09 19:22
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
自己定义一个表单就行,可以更具特色,与整个程序风格一致。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)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
快速回复:【分享 MESSAGEBOX】这是你心目中的消息框吗?
数据加载中...
 
   



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

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