如何为不同的 NSIS 安装程序页面设置不同的标头位图?

发布于 2024-11-29 18:28:16 字数 63 浏览 1 评论 0原文

如何为不同的页面设置不同的位图,比如说,我想将一个位图设置为许可证页面的标题,将另一个位图设置为目录页面的标题?

How can i set different bitmaps for different pages, say, i want to set a bitmap to be header of license page and another bitmap to be header of directory page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

演出会有结束 2024-12-06 18:28:16

NSIS 并不是真正设计来做到这一点的,但是没有什么可以阻止你在 pre 和/或 show 回调函数中调整页面:

!include MUI2.nsh
!define MUI_HEADERIMAGE

!insertmacro MUI_PAGE_WELCOME

!define MUI_PAGE_CUSTOMFUNCTION_PRE resetimg
!insertmacro MUI_PAGE_COMPONENTS

!define MUI_PAGE_CUSTOMFUNCTION_PRE setdirimg
!insertmacro MUI_PAGE_DIRECTORY

!define MUI_PAGE_CUSTOMFUNCTION_PRE resetimg
!insertmacro MUI_PAGE_COMPONENTS

!insertmacro MUI_LANGUAGE "English"

!macro fixheaderimgafterupdate
;Ugly way to trigger a repaint
GetDlgItem $0 $hwndparent 1046
ShowWindow $0 0
ShowWindow $0 1
!macroend

Function setdirimg
File "/oname=$PLUGINSDIR\hdrdir.bmp" "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
SetBrandingImage /IMGID=1046 "$PLUGINSDIR\hdrdir.bmp"
!insertmacro fixheaderimgafterupdate
FunctionEnd

Function resetimg
#SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp" ;This also works, but does not deal with stretching etc
!insertmacro MUI_HEADERIMAGE_INIT ""
!insertmacro fixheaderimgafterupdate
FunctionEnd

NSIS was not really designed to do this, but there is nothing stopping you from tweaking pages in the pre and/or show callback functions:

!include MUI2.nsh
!define MUI_HEADERIMAGE

!insertmacro MUI_PAGE_WELCOME

!define MUI_PAGE_CUSTOMFUNCTION_PRE resetimg
!insertmacro MUI_PAGE_COMPONENTS

!define MUI_PAGE_CUSTOMFUNCTION_PRE setdirimg
!insertmacro MUI_PAGE_DIRECTORY

!define MUI_PAGE_CUSTOMFUNCTION_PRE resetimg
!insertmacro MUI_PAGE_COMPONENTS

!insertmacro MUI_LANGUAGE "English"

!macro fixheaderimgafterupdate
;Ugly way to trigger a repaint
GetDlgItem $0 $hwndparent 1046
ShowWindow $0 0
ShowWindow $0 1
!macroend

Function setdirimg
File "/oname=$PLUGINSDIR\hdrdir.bmp" "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
SetBrandingImage /IMGID=1046 "$PLUGINSDIR\hdrdir.bmp"
!insertmacro fixheaderimgafterupdate
FunctionEnd

Function resetimg
#SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp" ;This also works, but does not deal with stretching etc
!insertmacro MUI_HEADERIMAGE_INIT ""
!insertmacro fixheaderimgafterupdate
FunctionEnd
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文