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

InstallShield自定义对话框浅谈(二) (转)[@more@]

二、 根据输入控制对话框上控件的有效性
在自定义了一个对话框之后,可能需要对对话框上的控件之间的关系进行一些控制,比如当选中了某单选框后,使一些控件有效,而选中其他的单选框后,另一些控件有效等等。要实现这些功能,就需要手动编写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"


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10794571/viewspace-974710/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10794571/viewspace-974710/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值