Добавление пользовательских меток на страницах диалогов NSIS, условное отображение и скрытие меток на страницах NSIS MUI Directory, как получить идентификаторы меток - PullRequest
0 голосов
/ 29 апреля 2011

Как скрыть пользовательскую метку, добавленную в диалоге страницы каталога установщика NSIS.LABEL добавляется с помощью Resource Hacker, и его идентификатор 1300

Как условно изменить текст LABEL?

Если пользователь выберет установку DEMO, то текст метки должен быть "DEMO".", и если пользователь решит установить UPDATE, то текст метки должен быть" UPDATE "

Я добавил 2 метки, теперь я скрываю их и отображаю их соответствующим образом. Идентификатор ярлыка 1300, идентификатор ярлыка 2 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 ЭТИХ ЭТИКЕТОК?

1 Ответ

5 голосов
/ 29 апреля 2011

NSIS использует дочерний диалог для размещения реальных страниц:

enter image description here

Сначала нужно получить дескриптор внутреннего диалога, затем вы можете найти метку:

FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...