如何修改NSIS中MessageBox的标题(Caption)

在nsis中没有提供修改MessageBox的标题的接口,例如,在我的软件打包程序中调用下面的语句

MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "建议先卸载${PRODUCT_NAME},再安装现有版本"  IDOK uninstall IDCANCEL next

窗口的标题显示为“名称 安装”,如下图所示

 

所以为了修改MessageBox的标题,应采用下面的方式,代码如下:

!define MB_OKCANCEL 0x00000001
!define MB_ICONEXCLAMATION 0x00000030
System::Call 'USER32::MessageBox(i $hwndparent, t "建议先卸载${PRODUCT_NAME},再安装现有版本", t "警告", i ${MB_OKCANCEL}|${MB_ICONEXCLAMATION})i .r1'

注:“.r1”表示将MessageBox的返回值赋值给$1,如果点击了OK,$1赋值为1,如果点击了CANCEL,$1被赋值为2。所以根据$1的值就可以控制后续的逻辑流程了。

这样修改后,窗口的标题显示为“警告”,如下图所示:

 

对话框窗口的返回值,如何使用呢?代码如下:

# $1=1 确定; $1=2 取消

StrCmp $1 2 next 0

MB_OKCANCEL,MB_ICONEXCLAMATION 的值可参考微软API

https://docs.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-messagebox?redirectedfrom=MSDN

借鉴网址:https://nsis-dev.github.io/NSIS-Forums/html/t-252587.html

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值