Checkbox NSIS有什么答案吗?

Checkbox NSIS有什么答案吗?,checkbox,callback,nsis,Checkbox,Callback,Nsis,您能告诉我如何在欢迎页面上设置“MUI\U许可证页面\U复选框”吗 当我单击复选框时,我控制事件。来自MUI文档: 页面自定义功能 。。。调用show函数,该函数可用于自定义界面 您可以在此回调中添加额外的控件。对于MUIv2,这意味着nsDialogs: !include LogicLib.nsh !include MUI2.nsh !define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomeShow !define MUI_PAGE_CUSTOMFUNCTION_

您能告诉我如何在欢迎页面上设置“MUI\U许可证页面\U复选框”吗


当我单击复选框时,我控制事件。

来自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
!包括LogicLib.nsh
!包括MUI2.nsh
!定义MUI\u页面\u自定义功能\u显示WelcomeShow
!定义MUI\u页面\u自定义功能\u离开欢迎离开
!插入宏MUI\u页面\u欢迎
!定义MUI\u页面\u自定义功能\u预许可证预许可证
!insertmacro MUI_页面许可证“${{uuuu文件}”
!insertmacro MUI_页面目录
!插入宏MUI_页面文件
!插入宏MUI\u页面\u完成
!插入宏梅语言英语
Var SkipLicensePage
功能WelcomeShow
${NSD_CreateCheckBox}120u 150u 90%12u“接受许可证”
流行音乐$0
SetCtlColors$0${MUI_TEXTCOLOR}${MUI_BGCOLOR}
系统::调用“USER32::SetWindowPos(p$0,p0,i0,i0,i0,i0x33 | 0x40)”;在现有标签上施加力
${NSD_SetState}$0$SkipLicensePage
${NSD_OnClick}$0 WelcomeCheckClicked
功能端
函数Welcome休假
${NSD_GetState}$0$SkipLicensePage
功能端
函数WelcomeCheckClicked
流行音乐1美元;扔掉
MessageBox mb_ok“你点击了我!”
功能端
功能许可证
${IfThen}$SkipLicensePage 0${}中止${}
功能端

为什么要投反对票?无论如何,该复选框是否应跳过许可证页或执行其他操作?