need urgent help, is it a bug?
As you see, the default checked radiobutton is "test2", why it will change to "test1" if I press any of taskbar button.
This issue only occured when the page was shown and I press the taskbar button before any buttons was pressed on the page. So what's the cause? Someone helps?
test.nsi
!include 'MUI.nsh'
!include 'WinMessages.nsh'
!include 'LogicLib.nsh'
ReserveFile 'cutmpage.ini'
Page custom create check
OutFile test.exe
Var DLGITEM
!macro SendCMD INI Field hwnd CODE wparam lparam
!insertmacro MUI_INSTALLOPTIONS_READ $DLGITEM '${INI}' '${Field}' '${hwnd}'
${Select} ${CODE}
${Case} 'EnableWin'
EnableWindow $DLGITEM ${wparam}
${Case} 'ShowWin'
${IfThen} ${wparam} == 0 ${|} ShowWindow $DLGITEM ${SW_HIDE} ${|}
${IfThen} ${wparam} == 1 ${|} ShowWindow $DLGITEM ${SW_SHOW} ${|}
${CaseElse}
SendMessage $DLGITEM ${CODE} ${wparam} ${lparam}
${EndSelect}
!macroend
Function .onInit
InitPluginsDir
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS 'cutmpage.ini' 'cutmpage.ini'
FunctionEnd
Function create
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG 'cutmpage.ini'
Call checktest2
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd
Function check
!insertmacro MUI_INSTALLOPTIONS_READ $0 'cutmpage.ini' 'Settings' 'State'
StrCmp $0 0 done
StrCmp $0 1 test1
StrCmp $0 2 test2
StrCmp $0 3 test3
Abort
test1:
Call Checktest1
Abort
test2:
Call Checktest2
Abort
test3:
Call Checktest3
Abort
done:
FunctionEnd
Function checktest1
!insertmacro SendCMD 'cutmpage.ini' 'Field 1' 'HWND' ${BM_SETCHECK} 1 0
!insertmacro SendCMD 'cutmpage.ini' 'Field 2' 'HWND' ${BM_SETCHECK} 0 0
!insertmacro SendCMD 'cutmpage.ini' 'Field 3' 'HWND' ${BM_SETCHECK} 0 0
FunctionEnd
Function checktest2
!insertmacro SendCMD 'cutmpage.ini' 'Field 1' 'HWND' ${BM_SETCHECK} 0 0
!insertmacro SendCMD 'cutmpage.ini' 'Field 2' 'HWND' ${BM_SETCHECK} 1 0
!insertmacro SendCMD 'cutmpage.ini' 'Field 3' 'HWND' ${BM_SETCHECK} 0 0
FunctionEnd
Function checktest3
!insertmacro SendCMD 'cutmpage.ini' 'Field 1' 'HWND' ${BM_SETCHECK} 0 0
!insertmacro SendCMD 'cutmpage.ini' 'Field 2' 'HWND' ${BM_SETCHECK} 0 0
!insertmacro SendCMD 'cutmpage.ini' 'Field 3' 'HWND' ${BM_SETCHECK} 1 0
FunctionEnd
Section
SectionEnd
cutmpage.ini
[Settings]
NumFields=3
[Field 1]
Type=RadioButton
Text=test1
Left=0
Right=298
Top=43
Bottom=54
Flags=NOTIFY
[Field 2]
Type=RadioButton
Text=test2
Left=0
Right=301
Top=57
Bottom=65
Flags=NOTIFY
[Field 3]
Type=RadioButton
Text=test3
Left=0
Right=298
Top=68
Bottom=78
Flags=NOTIFY