InstallShield自定义对话框浅谈(二)

二、 根据输入控制对话框上控件的有效性
在自定义了一个对话框之后,可能需要对对话框上的控件之间的关系进行一些控制,比如当选中了某单选框后,使一些控件有效,而选中其他的单选框后,另一些控件有效等等。要实现这些功能,就需要手动编写InstallShield脚本来实现了。
下面是一个在安装向导中添加了一个自定义对话框,在该步骤中实现在安装的时候在本机器上添加一个SQL Server的数据源。图“自定义对话框效果图”是该自定义对话框的运行效果图:
 

在该自定义对话框中,除了要完成配置SQL Server的数据源之外,还要完成其他一些辅助功能。为了在本机器上配置一个SQL Server数据源,需要输入该数据源的名称、该数据源是针对那个服务器的以及配置的是用户数据源还是系统数据源等数据,而数据库和服务器用户及口令则是完成辅助功能所需要的。只有当输入了必须的数据(如:服务器、数据库、用户名称、数据源等)之后,按钮“下一步”才能有效,为了达到这个要求,就需要对用户的输入进行判断,在InstallShield中可以用WaitOnDialog来得到当前对话框的事件。下面是完成该功能的一个完整脚本代码:

///
// kdcis.rul
//
///

#ifndef __KDCIS_RUL_
#define __KDCIS_RUL_

#include "winsysdll.h"
 //
 // Pre-defined script dialog constants
 //   

             // ----- Attribute Dialog Controls ------
#define DLG_DSN_SQLSERVER    30001

#define IDC_RADIO_DSN_USER    1001
#define IDC_RADIO_DSN_SYSTEM   1002
#define IDC_EDIT_DB_ADDR                1003
#define IDC_EDIT_SQLSERVER_USER_NAME 1004
#define IDC_EDIT_SQLSERVER_USER_PWD 1005
#define IDC_EDIT_SQLSERVER_DSN   1006
#define IDC_EDIT_SQLSERVER_DB   1007

        file://----------------------
        // Function prototypes
        file://----------------------


///
// 显示配置SQLSERVER数据源对话框
// 参数:
//    BOOL bFirstStep:是安装的第一步吗?
//    BOOL bAllowNotSet:是否允许跳过本次设置
//    BYVAL STRING szTitle:对话框的标题
///
prototype BuildSQLServerDSN(BOOL, BOOL, BYVAL STRING);


///
// 校验配置数据源对话框的输入有效性
// 参数:
//    HWND hwndDlg:配置对话框的句柄,从CmdGetHwndDlg中得到
//    BOOL bAllowNotSet:是否允许跳过本次设置
// 备注:
//    CheckSQLServerDSNInputValid:对SQLSERVER数据源配置进行校验
//
prototype CheckSQLServerDSNInputValid(HWND, BOOL);
      
        file://----------------------
        // Variable declaration
        file://---------------------- 
       
        file://----------------------
        // Macro declaration
        file://----------------------
#define DSN_SQLSERVER_DLG "ConfigSQLServerDSNDLG"

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

flyelf

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值