如何在NSIS的欢迎页面中插入回调函数

问题描述 投票:-2回答:1

我正在Google上搜索此问题,但未完成。

您能告诉我如何在“欢迎”页面上显示“ MUI_LICENSEPAGE_CHECKBOX”吗?

并且单击复选框时,我也会控制事件。

有什么好东西可以解决这个问题吗? T.T

checkbox callback nsis
1个回答
0
投票

从MUI文档中:

页面自定义功能

... show函数被调用,可用于自定义界面。

您可以在此回调中添加其他控件。对于MUIv2,这意味着nsDialogs:

!include LogicLib.nsh
!include MUI2.nsh
!define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomeShow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE WelcomeLeave
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_PRE LicensePre
!insertmacro MUI_PAGE_LICENSE "${__FILE__}"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English

Var SkipLicensePage

Function WelcomeShow
${NSD_CreateCheckBox} 120u 150u 90% 12u "Accept license"
Pop $0
SetCtlColors $0 ${MUI_TEXTCOLOR} ${MUI_BGCOLOR}
System::Call 'USER32::SetWindowPos(p$0,p0,i0,i0,i0,i0,i0x33|0x40)' ; Force on top of the existing label
${NSD_SetState} $0 $SkipLicensePage
${NSD_OnClick} $0 WelcomeCheckClicked
FunctionEnd

Function WelcomeLeave
${NSD_GetState} $0 $SkipLicensePage
FunctionEnd

Function WelcomeCheckClicked
Pop $1 ; Throw away
MessageBox mb_ok "You clicked me!"
FunctionEnd

Function LicensePre
${IfThen} $SkipLicensePage <> 0 ${|} Abort ${|}
FunctionEnd
© www.soinside.com 2019 - 2024. All rights reserved.