簡體   English   中英

在 NSIS 對話框頁面中添加自定義標簽,有條件地在 NSIS MUI 目錄頁面中顯示和隱藏標簽,如何獲取標簽的 id

[英]Adding custom labels in NSIS dialog pages, showing and hiding labels in NSIS MUI Directory pages conditionally, how to get the ids of labels

如何隱藏在 NSIS 安裝程序的目錄頁面對話框中添加的自定義 LABEL。 LABEL 是使用 Resource Hacker 添加的,它的 id 是 1300

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

如果用戶選擇安裝 DEMO,則 label 文本應為“DEMO”,如果用戶選擇安裝 UPDATE,則 label 文本應為“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?

NSIS 使用子對話框來托管實際頁面:

在此處輸入圖像描述

您首先需要獲取內部對話框的句柄,然后您可以找到 label:

FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM