在我的自定义页面中,我在页面加载时禁用了下一步按钮......因为有一些后台进程需要完成,直到我们无法进入下一页。所以我使用以下代码禁用了下一个按钮。
GetDlgItem $1 $HWNDPARENT 1
EnableWindow $1 0
但是我想在后台进程完成后启用下一个按钮。我已使用以下代码启用
GetDlgItem $1 $HWNDPARENT 1
EnableWindow $1 1
但它没有用......请您提出我犯的错误或如何在NSIS中实现这一点?
以下是我的代码
Function StartProgressPage
; Set dialog text:
!insertmacro MUI_HEADER_TEXT "$(STARTPRGDIA_TITLE)" "$(STARTPRGDIA_SUBTITLE)"
; Display the page:
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "StartPrgDia"
;Disable Next Button
GetDlgItem $0 $HWNDPARENT 1
EnableWindow $0 0
nsDialogs::Create 1018
Pop $dialog
nsDialogs::CreateControl "msctls_progress32" \
${DEFAULT_STYLES}|${PBS_SMOOTH} \
${PB_EXSTYLE} \
0 30 100% 10% \
"Test" \
Pop $hwnd
${NSD_CreateTimer} NSD_Timer.CallStop 10
nsDialogs::Show
FunctionEnd
Function NSD_Timer.CallStop
${NSD_KillTimer} NSD_Timer.CallStop ; Kill the timer
SendMessage $hwnd ${PBM_SETRANGE32} 0 100
SendMessage $hwnd ${PBM_SETPOS} 25 0
Call <Some Process>
SendMessage $hwnd ${PBM_SETPOS} 50 0
Call ConfPropertyChanges
SendMessage $hwnd ${PBM_SETPOS} 100 0
${NSD_CreateLabel} 0 10 20% 10u Completed
;Enable Next Button
GetDlgItem $0 $HWNDPARENT 1
EnableWindow $0 1
FunctionEnd