NSIS:如何删除nsDialogs中可用的标签或任何其他控件?

NSIS:如何删除nsDialogs中可用的标签或任何其他控件?,nsis,Nsis,情景: 我有一个复选框,使用${NSD_CreateCheckBox}创建。使用在${NSD_OnClick}中给出的方法,我使用${NSD_CreateLabel}在复选框下方创建一个标签,只要它被选中 现在,当我取消选中复选框控件时,如何删除我在复选框下方创建的标签 是否有类似${NSD_Delete*}的东西?没有Delete宏,但如果确实需要,可以实现自己的Delete宏,但通常只显示/隐藏一个控件 !include nsDialogs.nsh !include LogicLib.nsh

情景: 我有一个复选框,使用${NSD_CreateCheckBox}创建。使用在${NSD_OnClick}中给出的方法,我使用${NSD_CreateLabel}在复选框下方创建一个标签,只要它被选中

现在,当我取消选中复选框控件时,如何删除我在复选框下方创建的标签


是否有类似${NSD_Delete*}的东西?

没有Delete宏,但如果确实需要,可以实现自己的Delete宏,但通常只显示/隐藏一个控件

!include nsDialogs.nsh
!include LogicLib.nsh

!ifndef NSD_DestroyControl
!define NSD_DestroyControl "!insertmacro NSD_DestroyControl "
!macro NSD_DestroyControl h
System::Call 'USER32::DestroyWindow(i${h})'
#Could also use: SendMessage ${h} ${WM_CLOSE} 0 0
!macroend
!endif

Page Custom MyPage
Page InstFiles

Var CheckShowHide
Var Lbl1
Var CheckDestroy
Var Lbl2

Function MyPage
nsDialogs::Create 1018
Pop $0

${NSD_CreateCheckbox} 0 30u 100% 10u "Show/Hide"
Pop $CheckShowHide
${NSD_CreateLabel} 0 50u 100% 12u "Hello"
Pop $Lbl1
${NSD_OnClick} $CheckShowHide ShowHide
${NSD_Check} $CheckShowHide

${NSD_CreateCheckbox} 0 70u 100% 10u "Create/Destroy"
Pop $CheckDestroy
${NSD_OnClick} $CheckDestroy CreateDestroy

nsDialogs::Show
FunctionEnd

Function ShowHide
Pop $0
${NSD_GetState} $CheckShowHide $0
${If} $0 = ${BST_UNCHECKED}
  ShowWindow $Lbl1 0
${Else}
  ShowWindow $Lbl1 1
${EndIF}
FunctionEnd

Function CreateDestroy
Pop $0
${NSD_GetState} $CheckDestroy $0
${If} $0 = ${BST_UNCHECKED}
  ${NSD_DestroyControl} $Lbl2
${Else}
  ${NSD_CreateLabel} 0 90u 100% 12u "World"
  Pop $Lbl2
${EndIF}
FunctionEnd