当有人在组件MUI页面上选择组件时调用函数

时间:2012-08-27 00:58:24

标签: winapi installer nsis

我正在尝试向MUI2组件页面添加一些自定义功能。

当用户选择一个组件(复选框)时,我想调用我的自定义功能。如果选择了第一个组件,那么我也想检查/选择第二个组件。

我的代码尝试编写此功能但我收到编译错误:

  

macroline 8上的宏__NSD_OnControlEvent错误

!include nsdialogs.nsh
!include MUI2.nsh

!define MUI_PAGE_CUSTOMFUNCTION_SHOW compshow

!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

OutFile "test.exe"

Function OnCustomisationComponentClick 
    #SendMessage 1032 ${TVM_SETITEM} 0 $someTVItem
    MessageBox MB_OK "abc"
FunctionEnd

Function compshow
    FindWindow $0 "#32770" "" $HWNDPARENT
    GetDlgItem $0 $0 1032 # 1032 is the Treeview that holds the components
    !insertmacro __NSD_OnControlEvent ${TVM_SELECTITEM} $0 OnCustomisationComponentClick
FunctionEnd


Section "Dummy"

SectionEnd

1 个答案:

答案 0 :(得分:0)

NSDialogs宏仅适用于NSDialog页面,组件页面是本机NSIS页面。

您必须使用.onSelChange回调函数来处理更改(使用sections.nsh中的帮助程序宏)