我正在使用 NSIS 创建一个仅包含自定义页面的安装程序。 自定义页面不应该有默认按钮(后退、下一页或取消),而只能在页面中央有 1 个按钮。 有什么方法可以删除整个底部窗格,正如我在所附图像中突出显示的那样? 我隐藏了按钮,但我想删除分隔线及其下面的部分。
这是我的代码:
;--------------------------------
;Include Modern UI
!include "MUI2.nsh"
;--------------------------------
;General
;Name and file
Name "Custom Test"
OutFile "custom_installer.exe"
;Default installation folder
InstallDir "$LOCALAPPDATA\Custom Test"
;Remove default branding text of Nullsoft
BrandingText " "
;--------------------------------
;Interface Settings
!define MUI_LICENSEPAGE_BGCOLOR "814EFA"
!define MUI_ABORTWARNING
!define MUI_BGCOLOR "000000"
;--------------------------------
;Functions
Function Start
nsDialogs::Create 1044
Pop $0
SetCtlColors $0 222425 FBFBFB
${NSD_CreateButton} 20 170 90% 15u INSTALL
GetDlgItem $0 $HWNDPARENT 3 ; Back Button
GetDlgItem $1 $HWNDPARENT 1 ; Next/Close Button
GetDlgItem $2 $HWNDPARENT 2 ; Cancel Button
ShowWindow $0 ${SW_HIDE}
ShowWindow $1 ${SW_HIDE}
ShowWindow $2 ${SW_HIDE}
nsDialogs::Show
FunctionEnd
;--------------------------------
;Pages
Page custom Start
!insertmacro MUI_PAGE_COMPONENTS
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Installer Sections
Section "Dummy Section" SecDummy
SetOutPath "$INSTDIR"
SectionEnd
如何使用 SetBrandingText " " 隐藏水平线并使用 SetCtlColors $0 222425 FBFBFB 为底部区域着色,这样它看起来就像对话框的其余部分?
这对您来说可以接受吗?或者您想让对话框变小(降低其高度)?
我也有同样的挣扎,直到我找到这个介绍WinSpy++的页面
https://www.catch22.net/projects/winspy/
您可以使用此工具并将鼠标悬停在分隔线上以获取控件 ID就我而言,它是:0xFFFFFFFF
然后你可以像其他控件一样隐藏它:
GetDlgItem $0 $HWNDPARENT 0xFFFFFFFF
ShowWindow $0 ${SW_HIDE}
注意这具有全局效果并影响安装程序的所有 nsdialog,
所以你必须使用 ${SW_SHOW} 在下一页预打开功能中再次将其带回来