私のカスタム ページでは、ページの読み込み中に [次へ] ボタンを無効にしました... バックグラウンド プロセスを完了する必要があるため、次のページに移動できなくなります。したがって、次のコードを使用して次のボタンを無効にしました。
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