【问题标题】:using radio button followed by custom button in nsis在 nsis 中使用单选按钮后跟自定义按钮
【发布时间】:2014-07-05 20:01:13
【问题描述】:

我已经使用 NSIS 创建了一个安装程序。其中我包括了 2 个单选按钮。每当用户选择任何单选按钮时,它都会立即开始执行,但我希望在选择单选按钮后执行应该仅在用户按下自定义按钮后才开始执行。

那么如何在我的脚本中添加按钮(比如下一步)以及如何将我的单选按钮选择与它连接起来?

部分代码sn-p如下:

Function mode_selection

    nsDialogs::Create 1018
    Pop $dialog
    ${NSD_CreateLabel} 0 10 75% 20u "Choose your preference....."
    Pop $0 

    ${NSD_CreateRadioButton}  20 60 100% 25u "Execution Mode"
    Pop $hwnd
    ${NSD_AddStyle} $hwnd ${WS_GROUP}
    ${NSD_OnClick} $hwnd exec_mode

    ${NSD_CreateRadioButton} 20 90 100% 25u "Debug Mode "
    Pop $hwnd
    ${NSD_OnClick} $hwnd debug_mode


nsDialogs::Show

FunctionEnd

Function exec_mode

    ;some code

FunctionEnd
Function debug_mode

     ;some code

FunctionEnd

【问题讨论】:

    标签: button nsis radio


    【解决方案1】:
    !include nsDialogs.nsh
    !include LogicLib.nsh
    Page custom mode_selection
    
    var hwndExecModeRadio
    
    Function mode_selection
    nsDialogs::Create 1018 
    Pop $0
    ${NSD_CreateLabel} 0 10 75% 20u "Choose your preference....."
    Pop $0 
    
    ${NSD_CreateRadioButton} 20 60 80% 25u "Execution Mode"
    Pop $hwndExecModeRadio
    ${NSD_AddStyle} $hwndExecModeRadio ${WS_GROUP}
    
    ${NSD_CreateRadioButton} 20 90 80% 25u "Debug Mode "
    Pop $0
    
    ${NSD_CreateButton} 20 150 -40 14u "Do it"
    Pop $0
    ${NSD_OnClick} $0 perform_mode
    
    nsDialogs::Show
    FunctionEnd
    
    Function perform_mode
        ${NSD_GetState} $hwndExecModeRadio $0
        ${If} $0 = ${BST_CHECKED}
            Call exec_mode
        ${Else}
            Call debug_mode
        ${EndIF}
    FunctionEnd
    
    Function exec_mode
        MessageBox mb_ok "exec_mode"
    FunctionEnd 
    
    Function debug_mode
        MessageBox mb_ok "debug_mode"
    FunctionEnd
    

    【讨论】:

    • 如何在完成工作后禁用此自定义按钮?
    • EnableWindow $hwndExecModeRadio 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2019-10-11
    • 2021-04-23
    • 2018-10-08
    相关资源
    最近更新 更多