2014-03-19 42 views
0

我想根據上面的複選框的狀態動態地爲用戶創建Textinput。如何根據NSD_CheckBox動態創建NSD_Text?

我想是這樣的:


... 

Function nsDialogsPage 
    nsDialogs::Create 1018 
    ${NSD_CreateCheckBox} 20u 55u 50% 20u "Download with Proxy" 
    Pop $testBox 
    ${NSD_OnClick} $testBox button_click 
    nsDialogs::Show 
FunctionEnd 

Function button_click 
    ${NSD_GetState} $testBox $6 
    ${If} $6 == 1 
    ${NSD_CreateText} 20u 75u 80% 25p "Enter your Proxy ..." 
    ${Else} 
    ;Remove the Text, Set it invisible or do something like this ... 
    ${EndIf} 
FunctionEnd 

Function nsDialogsPageLeave 
    ;does something with the input 
FunctionEnd 

我沒有找到http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html和 我不知道如何刪除盒或使其不可見的用戶或類似這樣的東西什麼,他可以當CheckBox未被選中時,不會輸入任何內容。

回答

2

看看EnableWindow

${NSD_CreateText} 20u 75u 80% 25p "Enter your Proxy ..." 
Pop $myText 

#disable control 
EnableWindow $myText 0 

#enable control 
EnableWindow $myText 1 

#hide control 
ShowWindow $myText 0 

#show control 
ShowWindow $myText 1 
+1

+1。我建議從開始創建所有必需的對話框元素,並使用「ShowWindow」使可選元素不可見。另外,請檢查這個偉大的工具來設計對話框:[NSIS Dialog Designer](http://coolsoft.altervista.org/en/nsisdialogdesigner)。 –

+0

謝謝!那正是我想要的! – Joe