我正在创建一个安装程序,它要安装多个组件(提供复选框以选择所需的组件)。 现在,假设用户没有选择任何选项,即使然后组件页面上的“下一步”按钮也被激活。如果没有选择任何选项,我想禁用下一个按钮。 有人能告诉我怎么做吗? 请帮帮我
答案 0 :(得分:1)
如果您使用标准集合窗口作为MUI或XPUI,您的问题很难解决,如果您使用的是Modern UI(MUI),那么下一个代码可以帮助您编写所需的功能(在XPUI的情况下,这样做)根本不工作)
警告: 我做了 NOT 测试下一个程序(刚刚编译好),因为我目前正在使用XPUI而且我已经在我的安装程序中弃用了MUI,而且我提供了无逻辑重新启用OnChange_Service函数中的“下一步”按钮。
处理目标部分的事件更改,我不知道它是否有效,但我建议使用NSD_OnChange过程(在nsdialogs中定义)
!include'nsdialogs.nsh'
Function <...> ${NSD_OnChange} <... name of the target section ...> OnChange_Service FunctionEnd
在事件处理函数中放置代码以禁用按钮
函数OnChange_Service
var / GLOBAL NextButton
GetDlgItem $ NextButton $ HWNDPARENT 1
SectionGetFlags&lt; ...目标部分的名称...&gt; $ 0
IntOp $ 0 $ 0&amp; $ {SECTION_OFF}
StrCmp $ 0“1”DISABLENEXT GOTOENDONCHANGE
DISABLENEXT:
EnableWindow $ NextButton 0
GOTOENDONCHANGE:
functionend
如果您需要对窗口控件状态进行一些操作,我认为最好使用自定义窗口。
让我知道它是否适用于您的项目
(如果你想在你的代码中使用布尔运算符,那么使用LogicLib插件)