本文主要是介绍如何修改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
这篇关于如何修改NSIS中MessageBox的标题(Caption)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!