0

如何隐藏在 NSIS 安装程序的目录页面对话框中添加的自定义标签。LABEL 是使用 Resource Hacker 添加的,它的 id 是 1300

如何有条件地更改 LABEL 的文本?

如果用户选择安装 DEMO,则标签文本应为“DEMO”,如果用户选择安装 UPDATE,则标签文本应为“UPDATE”

我添加了 2 个标签,现在我相应地隐藏和显示它们。Label1 ID 是 1300,Label2 ID 是 1301。

# Occurs on Directory page show.
Function DirectoryShow

   ${If} $InstallType == DEMO

    GetDlgItem $5 $HWNDPARENT 1300
MessageBox MB_OK "ID of First Label is $5"  ----IT SHOWS '0' INSTEAD OF SHOWING 1300

 ${NSD_SetText} $5 "INSTALLING DEMO OF SOFTWARE!!!!!!!!!!!!!!!!!" 

GetDlgItem $6 $HWNDPARENT 1301
ShowWindow $6 ${SW_HIDE}

;GetDlgItem $1 $HWNDPARENT 2
;ShowWindow $0 ${SW_SHOW}
;ShowWindow $1 ${SW_HIDE}

 ${Else}

GetDlgItem $7 $HWNDPARENT 1300
ShowWindow $7 ${SW_HIDE}

GetDlgItem $8 $HWNDPARENT 1301
 ${NSD_SetText} $8 "UPDATING EXISTING SOFTWARE !!!!!!!!!!!!!!!!!" 

${EndIf}
FunctionEnd 

我如何获得这些标签的 ID?

4

1 回答 1

5

NSIS 使用子对话框来托管实际页面:

在此处输入图像描述

您首先需要获取内部对话框的句柄,然后您可以找到标签:

FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300
于 2011-04-29T13:02:23.780 回答