页数在编译时是固定的。
如果您需要不同的“隐藏”页面或仅仅是同一页面的几个实例,我会说你应该跳过页面的时候通过调用abort来创建页面的回调,但这不起作用如果页数是无限的。
也可以直接转到页:
Outfile test.exe
Requestexecutionlevel user
!include nsDialogs.nsh
Page Custom mypagecreate mypageleave
Page Directory dirpagecreate
Page Instfiles
Function mypagecreate
Var /Global MyCheckBox
nsDialogs::Create /NOUNLOAD 1018
Pop $0
${NSD_CreateCheckBox} 10% 20u 80% 12u "Again?"
Pop $MyCheckBox
nsDialogs::Show
FunctionEnd
Function mypageleave
${NSD_GetState} $MyCheckBox $0
StrCpy $MyCheckBox $0 ; This is a bit of a hack, we reuse the HWND var to store the state
FunctionEnd
Function dirpagecreate
${If} $MyCheckBox <> 0 ; Was the checkbox checked?
SendMessage $HWNDPARENT 0x408 -1 "" ; If so, go back
${EndIf}
FunctionEnd
Section
SectionEnd
这看起来真的对我好。我没有考虑将窗口句柄存储在以后重用。我会对此进行测试并对其进行编辑,以便让您知道它是否按预期工作,但从这一点看,这对我来说看起来不错。 –
这对我来说效果很好。我能够让所有的东西都按我的意愿工作。非常感谢你。 –